当前位置: 首页 > Linux

linux用户及用户组管理

时间:2023-04-06 02:21:23 Linux

一、用户信息存储文件1./etc/passwd存储当前系统所有用户的信息文件内容格式用户名:密码占位符:用户ID:用户组ID:用户评论信息:用户主目录:Shell类型信息,分隔符:[root/etc]#cat/etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncmail:x:8:12:mail:/var/spool/mail:/sbin/nologinnobody:x:99:99:没人:/:/sbin/nologinsshd:x:74:74:特权分离SSH:/var/empty/sshd:/sbin/nologinsshd:x:1001:1001::/home/vagrant:/bin/bashvboxadd:x:997:1::/var/run/vboxadd:/bin/falsememcached:x:996:995:Memcached守护进程:/run/memcached:/sbin/nologinapache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin...省略n行...2./etc/shadow存放当前系统所有用户的密码信息文件内容格式用户名:密码(加密):最后修改时间:最小时间间隔:密码有效期:警告时间:不重要,省略...信息分隔:“password”字段存储加密后的用户密码:如果为空,则对应的用户没有密码,登录不需要密码;星号(*)表示账户被锁定,无法登录;双感叹号(!!)表示密码已过期;以$6$开头表示使用SHA-512加密;以$1$开头表示用MD5加密;以$2$开头,表示使用Blowfish加密;以$5$开头,表示使用SHA-256加密;“最后修改时间”表示从1970年1月1日到用户最后一次修改密码的天数。“最短时间间隔”是指密码更改之间所需的最短天数。“密码有效期”是指密码保持有效的最长天数。“警告时间”是指从系统开始警告用户到用户密码正式失效的天数。示例[root/etc]#cat/etc/shadowroot:$1$damlkd,f$UC/u5pUts5QiU3ow.CSso/:16630:0:99999:7:::bin:*:16372:0:99999:7:::同步:*:16372:0:99999:7:::邮件:*:16372:0:99999:7:::nobody:*:16372:0:99999:7:::sshd:!!:16630:::::流浪者:$1$5eWJGPyo$/T4TT4hm2e.uKUhx9V0mi.:16630:0:99999:7:::vboxadd:!!:16630:::::::memcached:!!:17667:::::::apache:!!:17675:::::::...省略n行...2.用户组信息存储文件1./etc/group存放当前系统所有用户组的信息文件内容格式用户组名称:组密码占位符:用户组ID:组用户列表信息分隔:“组用户列表”是属于该组的所有用户的列表,不同的用户用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。示例[root/etc]#cat/etc/grouproot:x:0:bin:x:1:wheel:x:10:veewee,vagrantmail:x:12:nobody:x:99:users:x:100:sshd:x:74:veewee:x:1000:vagrant:x:1001:memcached:x:995:slocate:x:21:apache:x:48:...省略n行...2./etc/gshadow存储当前系统所有用户组的密码信息文件内容格式用户组名:组密码:组管理员:组内用户列表信息分隔符:“组密码”为空或!时,表示该用户组hasnopassword”当“群管理员”为空时,表示该群内的每个用户都是一个管理员。多个管理员之间可以用逗号(,)分隔“群内用户列表”是属于该群的所有用户的列表组,不同的用户用逗号(,)分隔,这个用户组可能是用户的主组,也可能是附加组。示例[root/etc]#cat/etc/gshadowroot:::bin:::wheel:::veewee,vagrantmail:::nobody:::users:::sshd:!::veewee:!::vagrant:!::memcached:!::slocate:!::apache:!::...省略n行...三、常用的用户管理命令1.useradd创建用户并设置基本信息语法useradd[option][username]选项-m:自动创建用户的主目录-d

:指定用户的主目录-g:指定用户所属的用户组-s:指定所使用的shell登录后的用户-u:指定用户id-c:添加备注文字。备注文字会保存在passwd的备注栏中。例如添加一个用户,在/home/目录下自动为该用户创建一个同名的home目录[root/etc]#useradd-mzhang[root/etc]#idzhanguid=1002(zhang)gid=1002(zhang)组=1002(zhang)[root/etc]#cat/etc/passwd|grepzhangzhang:x:1002:1002::/home/zhang:/bin/bash[root/etc]#ll/home/|目录grepzhangdrwx------2zhangzhang59June601:19zhang/添加用户,指定主目录、用户组、shell、用户ID和注释[root/etc]#useradd-d/home/php-groot-s/bin/bash-u666-c'PHPengineer'wang[root/etc]#idwanguid=666(wang)gid=0(root)group=0(root)[root/etc]#cat/等/密码|grepwangwang:x:666:0:PHP工程师:/home/php:/bin/bash[root/etc]#ll/home/|grepphpdrwx------2wangroot596月6日01:26php/2.usermod修改用户基本信息语法usermod[option][username]option-l:修改用户名-d:指定用户的家目录-g:指定用户所属的用户组-s:指定用户登录后使用的shell-u:指定用户id-c:添加备注Word。备注文字会保存在passwd的备注栏中-L:锁定用户密码,使密码无效,即用户无法使用密码登录-U:解除密码锁定注意事项修改用户信息时,用户不能处于登录状态。用户ID最好不要随便修改,容易导致用户失去文件的所有者权限。修改用户家目录,系统不会自动创建该目录。该目录需要手动创建并设置所有者权限。示例修改用户的用户名、用户组、shell和注释[root/etc]#usermod-lzhangfei-groot-s/bin/bash-c'iOSengineer'zhang[root/etc]#idzhangfeiuid=1994(zhangfei)gid=0(root)group=0(root)[root/etc]#idzhangid:zhang:没有那个用户[root/etc]#cat/etc/passwd|grepzhangfeizhangfei:x:1002:0:iOS工程师:/home/zhang:/bin/bash[root/etc]#ll/home/|grepzhangfeidrwx------2zhangfeizhang79June601:50zhang/lockandunlockuserpasswordlogin#lockUserpassword[root/etc]#usermod-Lzhangfei#打开一个新的bash窗口,尝试登录有密码,但被拒绝[Administrator~/Desktop]]$sshzhangfei@192.168.33.88zhangfei@192.168.33.88的密码:权限被拒绝,请重试。#解锁用户密码[root/etc]#usermod-Uzhangfei#使用密码登录成功[Administrator~/Desktop]]$sshzhangfei@192.168.33.88zhangfei@192.168.33.88的密码:上次登录时间:WedJun602:04:202018[zhangfei@10~]$3.userdeldeleteuser语法userdel[option][username]option-r:删除用户的同时删除用户的主目录及其中的文件-f:强制删除用户,即使用户当前登录instance[root/etc]#userdel-rzhangfei[root/etc]#idzhangfeiuid=1994(zhangfei)gid=0(root)group=0(root)[root/zhang]#idzhangfeiid:zhangfei:没有那个用户[root/etc]#cat/etc/passwd|grepzhangfei[root/etc]#ll/home/|grepzhangfei4.passwd设置用户密码语法passwd[option][Username]option没有任何选项:'passwd[username]',设置用户密码-d:删除用户密码-l:锁定用户密码-u:解锁用户密码没有设置用户的注意事项passwordsetanddeletedpassword无法使用密码登录实例删除用户密码[root~]#passwd-dwang清除用户密码wangpasswd:操作成功用户无法使用密码登录[Administrator~/Desktop]]$sshwang@192.168.33.88wang@192.168.33.88的密码:权限被拒绝,请重试。设置用户密码[root~]#passwdwang修改用户wang的密码。新密码:重新输入新密码:passwd:所有身份验证令牌已成功更新。用户可以使用密码登录[Administrator~/Desktop]]$sshvagrant@192.168.33.88vagrant@192.168.33.88的密码:Lastlogin:WedJun600:13:192018from10.0.2.2[vagrant~]$lockUserpassword[root~]#passwd-lwang锁定用户wang的密码。passwd:操作成功。用户无法使用密码登录[Administrator~/Desktop]]$sshwang@192.168.33.88wang@192.168.33.88的密码:权限被拒绝,请重试。解锁用户密码[root~]#passwd-uwang解锁用户wang的密码。passwd:操作成功后用户可以使用密码[Administrator~/Desktop]登录]$sshvagrant@192.168.33.88vagrant@192.168.33.88的密码:Lastlogin:WedJun602:44:502018from192.168.33.1[vagrant~]$4.禁止除root用户以外的所有用户登录。禁止除root用户以外的所有用户登录。您只需要在etc目录中创建/etc/nologin文件。[root~]touch/etc/nologin尝试登录,但是登录失败[Administrator~/Desktop]]$sshvagrant@192.168.33.88vagrant@192.168.33.88'spassword:Connectionclosedby192.168.33.88删除etc目录下的/etc/nologin文件[root~]#rm/etc/nologintryLogin,登录成功[Administrator~/Desktop]]$sshvagrant@192.168.33.88vagrant@192.168.33.88'spassword:Lastlogin:WedJun600:13:192018from10.0.2.2[vagrant~]$四、常用的用户组管理命令1.groupadd创建用户组语法groupadd[option][usergroupname]option-g:指定用户组ID实例添加用户组,指定ID[root~]#groupadd-g666php[root~]#grepphp/etc/groupphp:x:666:2.groupmod修改用户组语法groupmod[option][usergroupname]option-n:修改用户组名-g:指定用户组ID实例修改用户组名[root~]#groupmod-niosphp[root~]#grepios/etc/groupios:x:666:修改用户组ID[root~]#groupmod-g888ios[root~]#grepios/etc/groupios:x:888:3。groupdel删除用户组语法groupdel[用户组名]如果用户组中还有用户,删除用户组前必须删除这些用户例子[root~]#groupdelios[root~]#grepios/etc/group4.gpasswd管理用户组成员语法gpasswd[option][用户组名]option-a:将用户添加到组-d:从组实例中删除用户addusertogroup[root~]#gpasswd-awangphp正在将用户“wang”添加到组“php”[root~]#grepphp/etc/groupphp:x:666:wang[root~]#idwanguid=666(wang)gid=0(root)group=0(root),666(php)deleteuserfromgroup[root~]#gpasswd-dwangphpispassing用户“wang”从组“php”中删除[root~]#grepphp/etc/groupphp:x:666:[root~]#idwanguid=666(wang)gid=0(root)group=0(root)五、其他用户命令1.whoami显示当前登录用户名[root~]#whoamiroot2.id[用户名]显示指定用户信息,包括用户ID、用户名、主组ID和名称、附属组ID和名称[root~]#iduid=0(root)gid=0(root)group=0(root)[root~]#idrootuid=0(root)gid=0(root)group=0(root)[root~]#idvagrantuid=1001(vagrant)gid=1001(vagrant)group=1001(vagrant),10(wheel)[root~]#idwanguid=666(wang)gid=0(root)group=0(root)3.groups[username]显示指定用户的所有组[root~]#groupsroot[root~]#groupsrootroot:root[root~]#groupsvagrantvagrant:vagrantwheel[root~]#groupswangwang:root