1.用户查看和切换
**1) 用户查看**
whoami ##查看当前用户
id 用户名 ##查看当前用户id信息(用户id,主组id,附加组id)
id -u 用户名 ##查看当前用户id(用户Id---uid)
id -g 用户名 ##查看当前用户主组id(主组id---gid)
id -G 用户名 ##查看当前用户所有组的id
可以在上述命令参数中加n可以显示名称
eg : id -Gn 用户名 ##查看当前用户所有组的名称
**用户id范围:**
0-65535
0: ##Linux超级用户id
1-999: ##Linux系统自用id
1000-65535: ##用户级id
以上id设定规则都被记录在/etc/login.defs
**2)用户切换**
su - 用户名 ##切换用户(不加-,只切换用户名,不切换环境,命令在root环境上被拒绝)
如果 root----->commonuser 不需要密码
commonuser---->root 需要密码
commonuser---->commonuser 需要密码
注意:在做用户切换时,当使用完毕用户身份及时退出---使用命令exit或者logout命令
不要在一个shell中反复执行su命令
2.用户和组建立的基本方法及监控
-
用户建立: `useradd 用户名`
用户删除: `userdel -r 用户名`
组建立: `groupadd 组名`
组删除: ` groupdel 组名
用户就是 /etc/passwd文件中的一行字符
用户组就是/etc/group文件中的一行字符
若只执行 userdel 用户名 ,只能删除用户信息(用户和组),不能删除 /home 的用户目录 如何更能直观的查看建立和删除过程----可以通过watch 命令来监控,命令如下: watch -n 1 ------- watch监控命令默认是间隔两秒,所以-n 1 可以将监控时间间隔设置为1秒 tail -n 3 /etc/passwd /etc/group ---------查看passwd和group的最后3行 监控:watch -n 1 " tail -n 3 /etc/passwd /etc/group; ls -l /home " ----- 分号可以同时执行命令
3.用户建立时指定用户信息
/etc/passwd `westos : x : 1000 : 1000 : : /home/westos : /bin/bash` -----一共7列信息
用户名 : 密码 :用户id:主组id:用户备注信息:用户家目录:用户指定shell
/etc/group `westos : x : 1000 : ` --------------4列信息
组名 : 组密码 : 组id :附加用户名
**用户建立指定用户信息命令:**
`useradd -u xxx 用户名 ` ##建立用户时,指定用户id
`useradd -g xxx 用户名 ` ##建立用户时,指定主组id,主组id必须存在
`useradd -G xxx 用户名 ` ##建立用户时,指定附加组id,附加组id必须存在
`useradd -c "xxx" 用户名 ` ##建立用户时,指定用户备注信息
`useradd -d /home/xxx 用户名 ` ##建立用户时,指定用户家目录
`useradd -s /bin/sh 用户名 ` ##建立用户时,指定用户使用shell--/bin/sh /bin/bash /sbin/nologin
`useradd -M 用户名 ` ##建立用户时,不创建家目录
**组建立指定组信息命令:**
`groupadd -g xxx 组名 ` ##建立组时,指定组id
4.用户修改指定信息
**用户修改指定信息命令:**
`usermod -l 新用户 原用户名 ` ##修改用户名称
`usermod -u xxx 用户名 ` ##修改用户id
`usermod -g xxx 用户名 ` ##修改用户主组Id,主组id必须存在
`usermod -G xxx 用户名 ` ##修改用户附加组(再次添加会覆盖)
`usermod -aG xxx 用户名 ` ##添加用户附加组(不会覆盖)
`usermod -c "xxx" 用户名 ` ##修改用户备注信息
`usermod -d /home/haha 用户名 ` ##修改用户家目录指向(不改变家目录名称)
`usermod -md /home/haha 用户名 ` ##修改用户家目录指向(改变家目录名称)
`usermod -s /bin/sh 用户名 ` ##修改用户shell
`usermod -L 用户名 ` ##冻结账号
`usermod -U 用户名 ` ##解锁账号
**组修改指定信息命令:**
`groupadd -g xxx 组名 ` ##修改组id
5.用户信息文件
/etc/shadow 文件内容说明(用户密码说明)
`tail -n 1 /etc/shadow ` ------ jiayu:!!:xxx:xxx:xxx:xxx:xxx:xxx:xxx-----9列信息
用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:
账号非活跃期:账号到期时间:用户自定义(未使用)
**用户初建立时,账号是被锁状态,密码无法使用**
**关于用户密码相关操作命令:**
passwd -S 用户名 ##查看用户密码状态
passwd 用户名 ##修改用户密码
passwd ##修改当前用户密码
(当前用户是root,那么直接输入新密码即可,没有长度字符要求;当前用户是普通用户,修改密码时,需要旧密码和新密
码要求)
echo xxxx | passwd --stdin 用户名 ##直接修改密码(快捷效率)
passwd -l 用户名 ##冻结账号认证
passwd -u 用户名 ##解锁账号认证
passwd -l 锁定账户,在密码字符串的前面加上!!;passwd -u是去掉密码字符串前面的!!。
usermod -L 默认只是锁定密码,在密码字符串前面加!;usermod -U 默认只是解锁密码,去掉密码字符串前面的!。
passwd -d 用户名 ##用户密码删除(无密码可以直接登录)
**修改用户认证属性(用户密码属性)**
passwd -e 用户名 ##将用户密码最后一次修改时间设置为0
chage -d 0 用户名 ##将用户密码最后一次修改时间设置为0
设置完后,系统在重启输入密码之后,要求强制修改密码
passwd -n 1 用户名 ##将用户密码最短有效期设置为1天(1天内不能修改密码,root除外)
chage -m 1 用户名 ## 同上
passwd -x 40 用户名 ##将用户密码最长有效期设置为40天(40天内必须修改密码,否则会被冻结)
chage -M 40 用户名 ##同上
passwd -w 2 用户名 ##用户密码过期前警告时间设置为2天(最长有效期结束两天前)
chage -W 2 用户名 ##同上
passwd -i 1 用户名 ##用户密码超过最长有效期后还能使用的时间设置为1天
chage -I 1 用户名 ##同上
chage -E "2021-05-11" ##将用户密码到期时间设置为2021-5-11
以上数字可以设置为-1 ,哪一列设置-1之后,哪一列信息就为空,可以在参数上加-f 强制执行
5.用户权力下放
在系统中普通用户无法执行系统管理命令
如果需要普通用户执行系统管理,那么需要root用户进行授权
授权方法:
visudo ##此命令作用编辑/etc/sudoers并提供语法检测(直接使用vim编辑错误不提醒)
在文件的100行左右,打开visudo后,:100可以找到100行在root下写普通用户------代码规范
**用户名 主机名=(root) [NOPASSWD:] /command, /command1**
主机名可以通过hostname命令得到,/command可以通过which 命令得到,免密命令可有可无,没有免密,第一次会要密码
eg: lee westos.linux.org=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
整体流程测试: su - lee ##先切换普通用户lee
sudo useradd westostest ##在lee第一次使用sudo命令时,需要输入lee密码,免密不需要
sudo userdel -r westostest ##普通用户lee执行删除westostest用户
|