用户管理
用户、用户组的管理通常包括一下几个命令:
-useradd 添加用户 useradd 选项 参数
使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。 【在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd命令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中,adduser命令则是useradd命令的符号连接,两者实际上是同一个指令。】
可选择选项:
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中; useradd -c 'lol' test
-d<登入目录>:指定新创建用户的主目录;通常和-m一起使用 格式:useradd -d 目录 用户名
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;格式YY-MM-DD 格式: useradd -e'2018-08-01' usert4 创建账号并让其在该日期失效
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号; useradd -f 3 usert5 该用户密码过期后3天被关闭账号
-g<群组>:用于用户的初始化主组。并且该组名或者组数字必须存在。【设定用户主组】
-G<群组>: 添加附加组,可以有多个。每个组由一个逗号分隔的未来,中间没有空格。默认情况下附加组和属组相同,名称都是新增的用户名称
-m:如果用户的家目录不存在,则创建 useradd -m 目录 用户名
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s:指定用户登入后所使用的shell;
-u:指定用户id。
新建用户加入组: useradd –g sales jack –G company,employees
//-g:加入主要组、-G:加入次要组
建立一个新用户账户,并设置ID: useradd caojh -u 544 需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。
useradd与adduser的区别
useradd与adduser都是创建新的用户
在CentOs下useradd与adduser是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。
而在Ubuntu下useradd与adduser有所不同
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。
passwd 修改当前用户密码
参数:
-d 删除指定用户密码
-l 锁定指定用户
-u 解锁指定用户
-e:强制用户下次登录修改密码(密码马上过期:chage -d0 username)
-f:强制执行(配合其他选项使用)
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
usermod 修改用户账号
参数:
-l:用来更改用户//usermod -l 新用户名 用户名
-u:用来更改用户ID //usermod -u 新ID 用户名
-g:用来更改用户组//usermod -g 用户组 用户名
-d:用来更改家目录//usermod -d 家目录 用户名
-c <备注>:修改用户帐号的备注文字;
-s:用来更改用户shell//usermod -s /bin/bash或者/sbin/nologin 用户 ( /bin/bash表示:能登录的,/sbin/nologin表示:不能登录的)
-G:添加扩展组//usermod -G 指定用户组 用户名 (操作玩可以使用id命令来查看该用户的属性)(如果需要多个添加多个扩展组,直接用户组后再加)
userdel 删除用户
-r 强制删除,一般都需要添加
手动删除用户:
su 切换用户
- 选项只使用‘-’,表示连带用户的环境变量一起切换
-c 仅仅执行一次命令而不切换用户的身份
我们使用su 用户名切换用户后,使用env查看的话,环境变量还是没有改变,所以:我们使用su切换用户的话,不能省略-, 正常的切换是:su - 用户名。
超级用户切换到普通用户,不需要密码;普通用户切换到超级用户,需要输入密码。
id 查看用户信息
groupadd 添加分组
分组信息存放在 /etc/group
参数:
-g GID:指定GID:默认是上一个组的GID+1
-r:创建系统组
例如,现在创建名为mygroup1和mygroup2两个组,查看其GID,分别为1000和1001,GID加1:
[root@localhost ~]# groupadd mygroup1;groupadd mygroup2
[root@localhost ~]# tail -2 /etc/group
mygroup1:x:1000:
mygroup2:x:1001:
再创建一个名为mygroup3的组,指定其GID为2222:
[root@localhost ~]# groupadd -g 2222 mygroup3
[root@localhost ~]# tail -1 /etc/group
mygroup3:x:2222:
groupmod 修改分组
参数
-g GID:--gid GID:修改GID
-n NEW_NAME,修改组名
例如:将mygroup1的GID改为1111,组名改为MYGROUP:
[root@localhost ~]# groupmod -g 1111 -n MYGOURP mygroup1
[root@localhost ~]# tail -1 /etc/group
MYGOURP:x:1111:
groupdel 删除分组
当某user以某group为主组时,是无法使用groupdel命令删除该group的,但附加组不受影响
[root@localhost ~]# useradd user2 -g mygroup2 \\创建user2用户,指定主组为mygroup2
[root@localhost ~]# groupdel mygroup2 \\删除mygroup2
groupdel: cannot remove the primary group of user 'user2' \\提示无法删除
[root@localhost ~]# useradd user3 -G mygroup3 \\新建user3用户,添加附加组mygroup3
[root@localhost ~]# groupdel mygroup3 \\直接删除
作者:社会主义顶梁鹿
链接:https://www.jianshu.com/p/9586368fd7ba