Linux权限管理及用户与用户组

第一部分:Linux权限管理

一、基本权限

linux权限机制采用UGO模式。其中 u(user)表示所属用户、g(group)表示所属组、o(other)表示除了所属用户、所属组之外的情况。

u、g、o 都有读(read)、写(write)、执行(excute) 三个权限,所以UGO模式是三类九种基本权限。

用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限)。第一个字母对应的关系:

“-”    普通文件

“d”   目录

”l“     符号链接

”c“    字符设备

"b"    块设备

"s"    套接字

"p"    管道

修改文件或目录的所属用户: chown    文件名 | 目录名    用户

-R 该参数以递归的方式修改目录下所有文件的所属用户,参数可以敲 chown --help 查看。

修改文件或目录的所属组: chgrp    文件名 | 目录名    组名

-R 该参数以递归的方式修改目录下的所有文件的所属组。

命令chmod 用来修改文件或目录的权限:  chmod   -参数   模式   文件 | 目录

例子: 修改目录 log下所有文件的权限为700

chmod  -R   700    log

注:700的来历是       u        g        o

rwx     rwx   rwx

111    000   000

关于 chmod 命令的权限模式除了数字表示,还可以是  u、g、o 、a 加 +、- 来表示。格式如下:u、g、o分别代表用户、属组和其他,a 就是

all ,可以代替ugo。 +、- 代表增加或删除对应的权限,r、w、x 代表三种权限,分别是读、写、执行。

例子:对于目录 log下的所有文件(已有权限是700)增加所属组(g)的读(r)、执行(x)权限。

chmod    -R    g+rx    log

类似的命令可能还有很多,这里只是举几个最基本且常用的例子。很多命令用到时,再去查也可以。还可参考《鸟哥的Linux私房菜》。

二、特殊权限

Linux的3个特殊的权限,分别是setuid、setgid和stick bit。

setuid权限(S):只有用户可拥有,出现在执行权限(x)的位置。

setuid权限允许用户以其拥有者的权限来执行可执行文件,即使这个可执行文件是由其他用户运行的。

setgid权限(S):对应于用户组,出现在执行权限(x)的位置。

setgid权限允许以同该目录拥有者所在组相同的有效组权限来允许可执行文件。但是这个组和实际发起命令的用户组

不一定相同。

stick bit (t /T):又名粘滞位,只有目录才有的权限,出现在其他用户权限(o)中的执行位置(x)。当一个目录设置了粘滞位,只有

创建了该目录的用户才能删除目录中的文件,但是其他用户组和其他用户也有写权限。使用 t 或 T来表示。若没有设置

执行权限,但是设置了粘滞位,使用 t;若同时设置了执行权限和粘滞位使用 T。典型的粘滞位使用是 /tmp 目录,

粘滞位属于一种写保护。

设置特殊权限:

setuid:    chmod u+s  filename

setgid:    chmod g+s  directoryname

stick bit:  chmod o+t   directoryname

用数字表示特殊权限,是在基本权限之上的。浊嘴笨腮说不清楚,看例子:

例子:将上面例子中的log日志目录(已有权限 700)权限设置为755。特殊权限是类似 /tmp目录的 stick bit有效。

特殊权限                                            基本权限

setuid  setgid   stick bit                    user          group          other

0           0            1                      rwx              rwx             rwx

111             000             000

所以,设置特殊权限(stick bit)的命令应该是:chmod 1755 log

设置特殊权限后,ls -dl 查看该目录:drwxr-xr-t 2 gg gg  4096  5月 11 19:05 log ( 注意 other 的 x 位是代表特殊权限的字母 t )

取消该特殊权限的命令:chmod 755 log 。如此 stick bit的权限就没有了。

再次 ls -dl 查看该目录: drwxr-xr-x 2 gg  gg  4096  5月 11 19:15 log ( 注意最后一位已经变为代表普通权限的字母x )

需要注意的是,最前面一位 ”1“ 就是特殊权限位。其他两个特殊权限的设置也类似。setuid使用不是无限制的。出于安全目的,只能应用在

Linux  ELF格式二进制文件上,而不能用于脚本文件。

三、高级权限

ACL(Access Control List),访问控制列表是Linux下的的高级权限机制,可实现对文件、目录的灵活权限控制。ACL 允许针对不同用户、

不同组对同一个目标文件、目录进行权限设置,而不受UGO限制。

在一个文件系统上使用ACL需要在挂载文件系统的时候打开ACL功能。而根分区(ROOT)默认挂载的时候支持ACL。

命令:mount -o acl  /挂载路径

例子:mount -o acl  /dev/sdb1 /mnt

查看一个文件的ACL设置的命令:  getfacl file

(针对一个用户)为一个文件设置指定用户的权限的命令:  setfacl -m u:username:rwx   filename

(针对一个组)为一个文件设置指定组的权限的命令:  setfacl -m g:groupname:r-x  filename

删除一个ACL设置的命令:  setfacl -x u:username filename

第二部分:用户与用户组

---- 涉及用户及用户组的几个配置文件( 参照Ubuntu 12.04 )

/etc/passwd:保存用户信息,默认权限是644。

/etc/group:保存用户组信息,默认权限是644。

/etc/shadow:保存用户信息(与/etc/passwd一起保存用户全部信息,/etc/shadow中包含加密后的用户密码),默认权限是640。

/etc/gshadow:保存用户组信息,默认权限是640。

格式及各个字段的含义:

1. /etc/passwd

例子:通过grep woo  /etc/passwd 命令得到的 woo用户信息:  woo:x:1000:1000:woo.User,,,,:/home/woo:/bin/bash

格式及含义:

登陆名(woo):密码(x):用户的uid(1000):用户的gid(1000):全名(woo.User):家目录(/home/woo):使用的shell(/bin/bash)

注:系统ROOT用户的uid、gid都是0。当修改了/etc/passwd后,可以用 pwconv 命令从/etc/passwd 同步用户至 /etc/shadow。

2. /etc/group

例子:dcmtk用户组信息:dcmtk:x:125:gg

格式及含义:

组名(dcmtk):组密码(x):gid(125):该组的用户列表(gg)

注:系统会预留一些uid。在Ubuntu中,新建用户组的gid是从1000开始的。uid也是从1000开始。

预留的uid、gid资源分配给系统的伪用户、伪用户组。这些伪用户是不能登陆的,而只是为了

用他们完成或执行某些系统任务(这种设计和windows是类似的)。

当修改了/etc/group后,可以用grpconv命令从/etc/group同步用户至/etc/gshadow。

3. /etc/shadow

例子:gg:$1$0KWXx:14765:0:99999:7:::

格式及含义:

用户名(gg):密码($1$0KWXx):上次修改口令的时间(14765):两次修改口令间隔最多的天数(0):两次修改口令间隔的天数(99999):

提前多少天警告用户口令将过期(7):在口令过期后多少天禁用此用户():用户过期日期():保留字段()

4. /etc/gshadow

例子:MySQL组的信息:mysql:!::gg

格式及含义:

用户组名称(mysql):用户组密码(!):用户组管理者列表():组成员列表(gg)

补充:可以通过chattr命令设置/etc/passwd  、  /etc/group文件的属性。具体如下:

chattr 命令语法:chattr  [-RV]  [-v version]  [mode]  file|directory

最重要的mode部分: +-=[ASacDdIijsTtu]

其中,最常用的参数是:i (设置文件不可修改)、a(设置文件只能以追加方式修改)

但是,chattr命令不能设置/、/dev、/tmp、/var目录。

修订:

1. 2014年4月6日 修正了关于特殊权限的部分知识及相关理解。

2. 错误修正:chmod  -R  g+r  log    chmod -R g+rx  log  红色标注的命令针对权限为700的log目录来说是无效的。对于目录来说读权限(r)

是与执行权限(x)一起设置的。即:目录的执行权限是指用户是否可以进入目录。而目录的读权限(r)是指浏览目录的权限(查看目录的内容)。

参考:

注:

写博客的好处:一方面是对知识做梳理。文章写完,对这部分知识的理解也清晰很多。另一方面,集思广益,多多讨论。通过讨论,保证自己对于知识的

理解是正确的、深刻的,同时也可以参考别人好的学习方法,不断提升自己。

时间: 2024-10-10 14:47:21

Linux权限管理及用户与用户组的相关文章

Linux权限管理(用户、组、文件管理)

一. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1. 文件查看类命令cat,tac, head, tail, more, less, ls ,file: -ls : list,列出指定目录下的内容 使用语法:ls [option]- [file]- 参数:-a 显示所有文件,包括隐藏文件: -A 显示除.和..之外的所有文件: -l –long,长葛市列表,即显示文件的详细属性信息: 例:-rw-r--r--. 1 root   root     8957 10月

[Linux 004]——用户和用户组以及 Linux 权限管理(二)

到权限了.前面讲到了 Linux 中的用户和用户主管理,其实它们的本质(或者用户和用户组出现的初衷)都是方便权限管理.权限管理对于计算机的重要性不言而喻,权限让每个用户能够安安心心的使用计算机,而不用担心别的用户破坏到自己的资源.如果老王手里有一把你家的钥匙,你是不是很蛋疼呢,如果邻居除了老王,还有老赵,老李,老张...都有你家的钥匙,你是不是更加蛋疼呢.作为多用户的 Linux 而言,权限管理至关重要. 1.Linux 文件权限的规定 前文提到,Linux 规定一个文件必须要有三种权限:文件所

Linux基础知识之用户和用户组以及 Linux 权限管理

已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看有木有,一提起这几个名词马上脑海中总是升腾起无限的崇拜有木有!今天就硬着头皮捯饬捯饬这几个概念,希望能有所收获. 1.从 /etc/passwd 说起 前面的基本命令学习中,我们介绍了使用 passwd 命令可以修改用户密码.对于操作系统来说,用户名和密码是存放在哪里的呢?我们都知道一个站点的用户名

攻城狮在路上(叁)Linux(十一)--- 用户与用户组、文件权限、目录配置

一.用户与用户组: 3个概念:文件所有者(user).用户组(group).其他人(others). /etc/passwd  <==存放所有的用户名 /etc/shadow  <==存放个人密码 /etc/group     <==存放所有的组名 二.文件权限的概念: 1.文件属性 <==使用ls -al命令 drwxr-x---       1       root  root   4096  sep8 18:27  install.log    ① ② ③ ④ ⑤ ⑥ ⑦ 参

9.12 linux下文件的权限管理、用户和组管理

Su 切换用户 查看当前登录的用户:whoami.id 查看当前用户属于哪个组:groups 查看当前计算机中有几个组:cat /etc/group Groupadd 组名  添加组 Groupsdel 组名  删除组 avahi:x:122: colord:x:123: geoclue:x:124: gdm:x:125: abc:x:1000: sambashare:x:126:abc 456:x:1001: 格式:  组名:组密码:GID:当前组下有哪些用户 将123用户添加到456组中:

【Linux】 Linux权限管理与特殊权限

Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在是比较基础,不想多讲了.主要就是9格权限的理解.搞清楚读权限.写权限和执行权限对于文件和目录来说分别以为着什么,就可以了.下面是一些以前没怎么注意,今天听完培训之后觉得有些意思的点: ●  管理权限的权限 文件权限信息和其他文件信息一样,并不属于文件内容的一部分,而基本的权限是针对文件内容而言的.比

linux权限管理总结

文件或目录的权限 目录和文件拥有:读r.写w.执行x权限. // 使用 ls -l命令查看当前目录的文件权限信息 #ll -rw-r--r-- 1 root root 161 Mar 20 20:39 test.txt // test文件所有者拥有读写权限.所属组和其他用户拥有读权限 drw-r--r-- 1 root root 248 Mar 23 21:03 download 权限对文件的作用 r :读取文件内容(cat.more.head.tail) w:编辑.新增.修改文件内容(vi.e

Linux系统学习之用户与用户组

在Linux中,每个用户都拥有一个唯一的用户名和与之相关的用户标识符(UID,数值型).一个用户可以属于多个用户组,每个用户组都拥有唯一一个名称和一个用户组标识符(GID,数值型). UID和GID的主要用途有:一,确定各种系统资源的所有权:二,对赋予进程访问资源的权限进行控制. 说起用户和用户组,就必须谈谈相关的系统文件:/etc/passwd./etc/shadow和/etc/group.这些文件在Linux系统上都是以纯文本的形式存储.我们可以使用编辑器来修改它,也可以使用专有的命令来更改

Linux权限管理---特殊权限

目录 Linux权限管理---特殊权限 一.Linux系统特殊权限概述 二.特殊权限suid介绍 三.特殊权限sgid介绍 四.特殊权限sbit介绍 五.特殊权限总结: 六.linux权限属性chattr概述 七.Linux进程掩码umask Linux权限管理---特殊权限 一.Linux系统特殊权限概述 除了r(读). w(写). x(执行)这三种普通权限外,在查询系统文件权限时会发现还有其他的权限字母. 例如: [[email protected] ~]# ll /usr/bin/pass