Linux作为一个多任务,多用户的服务器操作系统,Linux提供了严格的权限管理机制,主要从用户身份,文件权限两方面对资源访问进行控制。
一、用户账号和组账号
1.1 用户账户概述
用户账号 | 功能 |
---|---|
超级用户 | root用户是Linux系统中默认的超级用户账号,对本级拥有最高的权限,类似于Windows系统中的administrator用户。 |
普通用户 | 普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。 |
程序用户 | 在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如:bin,daemon,ftp,mail等。 |
匿名用户 | Windows中的匿名用户时guest,Linux系统中匿名用户是nobody。 |
1.2 组账户概述
- 对于用户账号来说,对应的组账号可以分为基本组(私有组)和附加组(公共组)两种。
- 每一个用户账号可以是多个组账号的成员,但是其基本组账号只有一个。
- 在”/etc/passwd“文件中第四个字段记录的即为该用户的基本组GID号。
- 而对于该用户还属于那些附加组,需要在对应组账号文件中才被体现。
账号 | 描述 |
---|---|
私有组(基本组) | 随着用户的建立而建立,与用户同名 |
共有组(附加组) | 直接创建空组,可以自由添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。 |
1.3 添加用户账号:
useradd -u :指定uid +用户名
- -d :指定宿主目录
- -e :指定账户失效时间
- -g :指定用户基本组
- -G :指定用户附加组
- -M :不建立宿主目录
- -s :指定用户登录shell
1.4 设置用户密码:
passwd 直接加用户名
- -d :清空密码(可以空密码登录)
- -l :锁定用户
- -s :查询用户状态
- -u :解锁用户
1.5 修改用户账号的属性:
usermod -u :修改用户uid
- -d :修改宿主目录
- -e :修改用户账户失效时间
- -s :指定用户登录shell
- -l :更改用户登录名
- -L :锁定用户
- -U :解锁用户
- -g :修改用户所属的基本组
- -G :修改用户所属的附加组
1.6 删除用户:
userdel -r 用户名:删除用户时将宿主目录连带删除
1.7 添加组账户:
groupadd -g gid 组账户名
1.8 查询组账户:
grep ”组账户“ /etc/group
1.9 将用户加入指定组中:
gpasswd -a 用户名 组名
gpasswd -d 用户名 组名
二、文件目录的权限和归属
2.1 访问权限
类型 | 解释 |
---|---|
读取r | 允许查看文件内容,显示目录列表 |
写入w | 允许修改文件内容,允许在目录中新建,移动,删除文件或子目录 |
可执行x | 允许运行程序,切换目录 |
2.2 归属所有权
类型 | 解释 |
---|---|
属主 | 拥有该文件或目录的用户账号 |
属组 | 拥有该文件或目录的组账号 |
-
我们可以使用-rwxrwxrwx来表示权限也可以用777来表示权限。
-
rwx采用累加数字形式表示成 7 , r-x 表示成 5 , rwxr-xr-x 表示成755,rw-r–r--表示成644
-
数字固定不会变,一个普通的数据文件没有执行权限。
2.3 设置文件和目录的归属
chown 属主 文件或目录
chown 属组 文件或目录
chown 属主:属组 文件或目录
2.4 权限掩码
umask的作用:
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
-
umask的分数指的是“该默认值需要减掉的权限,”因此,如果执行“umask 022”,代表group和other被拿掉了权限“2”,也就是被拿掉了写的权限。
-
如果执行命令“umask 000”,代表文件的默认权限是“777”
-
-R 递归修改指定目录下所有文件,子目录的归属