本文已参与「新人创作礼」活动,一起开启掘金创作之路。
文件权限管理和用户组管理,包括权限说明,和相关命令使用方法,如useradd、passwd、groupadd、groupmod、chown等
1. Linux文件权限管理
权限、拥有者及用户组
1.1 [drwxr-xr-x]
- r可读权限,w可写权限,x可执行权限(也可以用二进制表示 111 110 100 --> 764)
- 第1位:文件类型(d 目录,- 普通文件,l 链接文件)
- 第2-4位:所属用户权限,用u(user)表示
- 第5-7位:所属组权限,用g(group)表示
- 第8-10位:其他用户权限,用o(other)表示
- 第2-10位:表示所有的权限,用a(all)表示
2. 相关命令
用户及组的配置文件
- /etc/passwd:用户
- /etc/shadow:用户的影子口令文件
- /etc/group:分组
- /etc/gshadow:分组密码
/etc/passwd格式
用户名:密码占位符x:UID:组ID:全称:主目录:shell elk:x:1001:1001::/home/elk:/bin/bash
UID:0:超级用户,1~499:程序用户,500~65535:普通用户 GID: /etc/group格式
组名:密码占位符x:ID:GID:本组的成员用户列表 root:x:0:
2.1 useradd
创建用户 Usage: useradd [options] LOGIN
参数说明
- -d:指定用户登入时的起始目录
- -g:指定用户所属基本组,仅有一个
- -G:指定用户所属附加组,允许多个,用户会拥有所属组的权限
- -m:自动建立用户的登入目录
- -s:指定用户登入后所使用的shell
- -e:指定帐号的有效期限
2.2 passwd
只有 root 用户才有权设置指定账户的密码。一般用户只能设置或修改自己账户的密码 Usage: passwd [OPTION...] <accountName>
参数说明
- -d:删除密码
- -l:停止账号使用
- -u:启用已被停止的账户
- -S:显示密码信息
- -x:设置密码的有效期
- -i:过期后停止用户账号
- -f:强迫用户下次登录时修改口令
2.3 userdel
Usage: userdel [options] LOGIN
参数说明
- -r:把用户的主目录一起删除
2.4 usermod
Usage: usermod [options] LOGIN
参数说明
- -l:改变用户帐户名
- -L:锁定账号
- -U:解锁账号
- -g:修改用户所属的群组
- -G:修改用户所属的附加群组
2.5 groupadd
Usage: groupadd [options] GROUP
参数说明
- -r:创建系统用户组,该类用户组的GID值小于500
2.6 groupmod
Usage: groupmod [options] GROUP
参数说明
- -n:改变用户组的名称
- -g:重设用户组的GID
2.7 groupdel
删除群组 Usage: groupdel [options] GROUP
2.8 gpasswd
添加用户到指定的组 / 从指定的组中移除用户 Usage: gpasswd [option] GROUP
参数说明
- -a:将用户添加到指定的组,使其成为该组的成员
- -b:从用户组中移除某用户
2.9 chown
变更文件或目录的拥有者,使用权限root Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE... or: chown [OPTION]... --reference=RFILE FILE...
参数说明
- -R:递归处理,处理指定目录以及其子目录下的所有文件
2.10 chmod
变更文件或目录的权限 Usage: chmod [OPTION]... MODE[,MODE]... FILE... or: chmod [OPTION]... OCTAL-MODE FILE... or: chmod [OPTION]... --reference=RFILE FILE...
参数说明
- MODE格式:[ugoa]([-+=]([rwxXst]|[ugo]))+|[-+=][0-7]+
- -R:递归处理,处理指定目录以及其子目录下的所有文件
r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=5。
2.11 chgrp
变更文件或目录的所属群组 Usage: chgrp [OPTION]... GROUP FILE...
参数说明
- --reference=参考文件:将每个文件的所属组设置为与指定参考文件相同
- -R:递归处理,将指定目录下的所有文件及子目录一并处理
2.9 管理文件拥有者及权限
- chown(管理文件的拥有者)
- chmod(管理文件的权限)
- chgrp(管理文件所属组群)
参数说明
- -R:表示递归目录下所有文件
commands example
useradd -m -d /home/<username> -s /bin/bash -g <groupname> <username>
passwd <username>
userdel -r <username>
usermod -l <NEW_USERNAME> <username>
groupmod -n <NEW_GROUPNAME> <groupname>
groupmod -g <NEW_GID> <groupname>
groupdel <groupname>
gpasswd -a <username> <groupname>
gpasswd -d <username> <groupname>
usermod -a -G <groupname> <username>
chown -R <username>[:<groupname>] file...
chmod ug+w,o-w file1.txt file2.txt
3. Linux赋予普通用户root权限
less /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
<username> ALL=(ALL) ALL
4. 示例
## 添加用户
useradd -m -d /home/zhangsan -s /bin/bash -g dev zhangsan
useradd -g dev -m zhangsan
# 修改目录所属组
chgrp -R dev /data/log
# 修改目录所属组权限
chmod -R g+w /data/log
# admin用户添加到dev附属组
usermod -G dev admin