Linux用户和用户组管理命令

本文发布时间: 2019-Mar-22
1. 用户管理命令 (1) 用户添加命令 useradd 命令格式:useradd [选项] 用户名 选项: -u UID: 手工指定用户的UID号 -d 家目录: 手工指定用户的家目录 -c 用户说明: 手工指定用户的说明 -g 组名: 手工指定用户的初始组 -G 组名: 指定用户的附加组 -s shell: 手工指定用户的登录shell,默认是/bin/bash例如,简单地添加一个用户 xiaobao,则执行 useradd xiaobao 即可。现在看一下添加用户 xiaobao 后会产生什么影响: ① 通过 grep 命令查看 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 这4个配置文件的变化 可以看到每个文件中都分别出现了一个用户名为 xiaobao 的记录。② 查看是否产生了家目录 /home/xiaobao 和 邮箱 /var/spool/mail/xiaobao可以看到已经产生了 xiaobao 这个用户的家目录和邮箱。当然我们也可以指定选项添加用户,如 : 先创建一个用户组 dabao: groupadd dabao 创建一个用户dabao: useradd -u 550 -g dabao -G root -d /home/dabao -c "test user" -s /bin/bash dabao 此时通过 grep 命令查看 /etc/passwd 和 /etc/group 文件: ③ 定义用户默认设置值的两个文件 /etc/default/useradd 和 /etc/login.defs /etc/default/useradd 文件: GROUP=100 # 用户默认组 HOME=/home # 用户家目录 INACTIVE=-1 # 密码过期宽限天数(对应于影子文件/etc/shadow的第7字段) EXPIRE= # 密码失效时间(对应于影子文件/etc/shadow的第8字段) SHELL=/bin/bash #默认shell SKEL=/etc/skel #模板目录 CREATE_MAIL_SPOOL=yes #是否建立邮箱/etc/login.defs 文件: /etc/login.defs 文件内容相对较多,去掉注释后的主要内容如下:PASS_MAX_DAYS 99999 # 密码有效期(对应于影子文件/etc/shadow的第5字段) PASS_MIN_DAYS 0 # 密码修改间隔(对应于影子文件/etc/shadow的第4字段) PASS_MIN_LEN 5 # 密码最小5位( PAM) PASS_WARN_AGE 7 # 密码到期警告(对应于影子文件/etc/shadow的第6字段) UID_MIN 1000 # 最小和最大UID范围 UID_MAX 60000 GID_MIN 1000 # 最小和最大GID范围 GID_MAX 60000 ENCRYPT_METHOD SHA512 # 加密模式(2) 修改用户密码 passwd 只执行 useradd 命令添加用户,这样的用户是不能正常使用的,还需要给用户设置密码,这就需要用到 passwd 命令。 命令格式:passwd [选项] 用户名 选项: -S 查询用户密码的密码状态。仅root用户可用。 -l 暂时锁定用户。仅root用户可用。 -u 解锁用户。仅root用户可用。 --stdin 可以通过管道符输出的数据作为用户的密码。① 查看密码状态: 各字段如下: 用户名密码设定时间(2016-01-07)密码修改间隔时间(0)密码有效期(99999)密码修改到期前的警告时间(7)密码过期后的宽限天数(-1:表示密码永远不会失效)② 锁定用户和解锁用户: 锁定sky用户:passwd -l sky 查看 /etc/shadow 文件可以看出锁定后在 sky 用户真正的密码串之前加上了两个感叹号,导致原始密码失效,从而锁定了 sky 用户。当然手工修改 /etc/shadow 文件中该用户的密码串也可以锁定用户。 锁定 sky 用户后再登陆 sky 用户会发现登陆失败,显示密码验证错误: 解锁sky用户:passwd -u sky解锁后发现 sky 用户的密码串的前两个感叹号消失了,此时 sky 用户又可以恢复登陆了。③ 使用字符串作为用户的密码: echo "<字符串>" | passwd --stdin <用户名>(3) 修改用户信息 usermod useradd 是添加新用户时同时进行设置,而 usermod 是修改已经存在的用户信息。 命令格式:usermod [选项] 用户名 选项: -u UID: 修改用户的UID号 -c 用户说明: 修改用户的说明信息 -G 组名: 修改用户的附加组 -L: 临时锁定用户(Lock) -U: 解锁用户锁定(Unlock)例如:修改已存在的用户 sky 的说明为test user,修改 sky 的 UID 为1024,并把 sky 加入 root 组 先查看用户 sky 的信息: 用 usermod 命令进行修改: 通过查看 /etc/passwd 和 /etc/group 文件,可以看出用户信息修改成功。用usermod 的 -L 和 -U 选项来锁定、解锁用户与 passwd 命令的作用是一样的: 可以看出用 usermod 命令和 passwd 命令相比,前者在密码串前加了一个感叹号,而后者在密码串钱加了两个感叹号,但作用是一样的。(4) 修改用户密码状态 chage 命令格式:chage [选项] 用户名 选项: -l: 列出用户的详细密码状态 -d 日期: 修改密码最后一次更改日期(对应于/etc/shadow的第3字段) -m 天数: 两次密码修改间隔(对应于/etc/shadow的第4字段) -M 天数: 密码有效期(对应于/etc/shadow的第5字段) -W 天数: 密码过期前警告天数(对应于/etc/shadow的第6字段) -I 天数: 密码过期后宽限天数(对应于/etc/shadow的第7字段) -E 日期: 账号失效时间(对应于/etc/shadow的第8字段)看一下 -l 选项: 所显示的信息即为 /etc/shadow 中相关信息。 上面用命令来修改信息的都可以在 /etc/shadow 文件中用 vi 进行修改,但有一个重要的命令需要说明一下: chage -d 0 <用户名> 这个命令其实是把密码修改日期归0了,这样用户一登陆就要修改密码,修改密码后密码修改日期就不再是0了,下次便可以正常登陆了。 对用户 sky 执行此命令后,/etc/shadow 文件中用户 sky 的第三个字段变为0。此时登陆用户 sky 时便要求修改密码: 修改密码后,密码修改时期就不再是0了:所以,下次再登陆用户 sky 输入修改后的密码就可以正常登陆了。(5) 删除用户 userdel 命令格式:userdel [-r] 用户名 选项: -r 删除用户的同时删除用户家目录当然也可以进行手工删除用户:删除 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 4个配置文件中要删除用户的行,删除邮件 /var/spool/mail/<要删除的用户名>和家目录 /home/<要删除的用户名>。手工删除用户时要想确定用户是否已经被删除,可通过 useradd <要删除的用户名> 命令来判断,若出现已存在该用户则表示手工删除未成功,若无提示则表示手工删除完成。(6) 查看用户ID id 命令格式: id <用户名> 显示用户的用户ID,初始组ID,所属组的ID(包括初始组ID) (7) 切换用户身份 su 命令格式:su [选项] 用户名 选项: - : 选项只使用“-”代表连带用户的环境 变量一起切换 -c 命令: 仅执行一次命令,而不切换用户身份su root # 只能获得root的执行权限,不能获得环境变量 su - root # 切换到root并获得root的环境变量及执行权限 上面两个命令可以省略 root,因为 su 命令默认切换到 root。 注意:有些命令即使你使用 su root 切换到 root 用户,仍无法执行,所以切换到 root 时,建议使用su - root。su - root -c "useradd user1" # 不切换成root,但是执行 useradd 命令添加 user1 用户2. 用户组管理命令 (1) 添加用户组 groupadd 命令格式: groupadd [选项] 组名 选项: -g GID: 指定用户组ID(2) 修改用户组 groupmod 命令格式: groupmod [选项] 组名 选项: -g GID: 修改用户组ID-n 新组名: 修改组名 如: groupmod -n newg oldg # 把组名 oldg 修改为 newg(3) 删除用户组 groupdel 命令格式: groupdel 组名注意:如果用户组中存在初始用户,则该用户组不能删除,而附加用户对用户组删除没有影响。 如: 添加一个用户组 baobao,添加一个用户 bao1 且指定 baobao 为其初始组,添加一个用户 bao2 且指定 baobao 为其附加组。此时用户组 baobao 中包含初始用户 bao1 和附加用户 bao2,因此删除 baobao 失败。而把用户 bao1 删除后,baobao 中只包含附加用户 bao2,这时删除 baobao 成功。(4) 把用户添加入组或从组中删除 gpasswd 命令格式: gpasswd [选项] 组名选项: -a 用户名: 把用户(作为附加用户)加入组 -d 用户名: 把用户从组中删除如: 添加一个用户组 test,查看 /etc/group 文件可以看出 test 组中没有附加用户,通过 gpasswd -a 命令将 xiaobao 和 bao2 两个用户加入到 test 组中。再查看 /etc/group 文件发现 test 组中已经多了 xiaobao 和 bao2,添加用户成功。 同样可以用 gpasswd -d 命令进行用户删除操作:


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:08pm
栏目列表