用户和组管理
新增/删除用户和组
groupadd -g 指定gid
groupmod -g 更改组gid
groupmod -n 更改组账户名
groupdel 如果组内有用户,不能删除
useradd -u -g -d指定家目录 -M不建立家目录 -s 自定义shell
userdel -r 删除用户的家目录
usermod -u -s -d -L锁 -U 解锁-g -G
chfn finger
useradd -p 口令
usermod -p 更新口令
usermod -l 新登录名
将share组更改为houdun
groupmod -n houdun share
groupadd grp1
ls /etc/group /etc/gshadow
groupadd -g 510 grp2
useradd -u 511 user5
tail /etc/group
useradd -d /tmp/user8 -s /bin/nologin user8
useradd -u 505 -g grp2 -G grp1 -d /tmp/user3 -s /sbin/nologin user3 -G grp1代表附属组
tail /etc/passwd
user3:x:505:510::/tmp/user3:/sbin/nologin
grep 510 /etc/group
grp2:x:510:
useradd -u 506 -g grp1 user9
usermod -g 513 user3 更改g的id
passwd 用户名
passwd -l 用户名 (锁定用户)
passwd -u 用户名(解锁用户)
passwd -d 用户名 (删除用户口令)
gpasswd -a 用户账户名 组账户名 (将指定用户添加到指定组)
gpasswd -d 用户账户名 组账户名 (将用户从指定组删除)
gpasswd -A 用户账户名 组账户名 (将用户指定为组的管理员)
用户管理
cd /etc
vim passwd 用户信息
vim shadow 查看用户的密码
vim group 后面是哪个组的账号
vim gshadow
创建用户
useradd -c "this is a test user" lisi 创建用户的同时添加注释
userdel -r test1
groupadd share
useradd -G share zhangsan 把一个用户加到一个标准组里面 用户有一个自己的私有组
usermod -G share zhangsan1 把已有的账号加到一个组里面
密码管理和用户切换
passwd -d test1 删除其他用户的密码
passwd -l test1 锁定用户账号的密码
passwd -u test1 解锁
usermod -L test1 锁定用户账号
usermod -U test1
vim /etc/login.defs 查看用户账号的时间
chage -l test1 查看用户密码的一些信息
chage -m 2 -M 30 -W 5 test1 给test1这个账号 设置在2天内不能修改密码,密码30过期,提前5天提示
su - test1 切换用户
sudo 是借用一下root权限
cd /etc
visudo 配置用户权限
id 查看用户的id
groups 表示当前的用户在哪个组里面
newgrp share 是改变当前用户默认的组 改成了share
5. 用户身份切换
su - 用来初始化环境变量 $PATH $HOME等
sudo su到root需要输入root的密码不安全 ,所以用这个
visudo 编辑/etc/sudoers 配置文件 没有命令需安装 yum install -y sudo
格式: user host=(as_user) commands
比如: aming ALL=(root) /bin/ls //它的意思是,让aming这个普通用户,拥有root的权限,针对ls这个命令。
应用:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户
User_Alias USER_SU = test, test1, aming //做用户的别名,可以写多个用户
Cmnd_Alias SU = /bin/su //做命令的别名,可以写多个命令
USER_SU ALL=(ALL) NOPASSWD: SU //其中NOPASSWD的意思是,普通用户使用sudo的时候,不需要输入自己的密码。
[root@localhost ~]# su - -c "touch /tmp/12.txt" aming 切换到aming这个用户去操作
[root@localhost ~]# ls -l /tmp/12.txt
-rw-rw-r--. 1 aming aming 0 18 16:04 /tmp/12.txt
让普通用户也有这个命令的root权限
[aming@localhost ~]$ ls /root
ls: cannot open directory /root: Permission denied
[aming@localhost ~]$ logout
[root@localhost ~]# visudo sudo的配置文件,进去查找root可以找到那行设置
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
aming ALL=(root) /bin/ls 添加这一行进去,/bin/ls就有root的权限了
[root@localhost ~]# su - aming
[aming@localhost ~]$ sudo /bin/ls /root/
[sudo] password for aming:
\ 3.txt a.2 anaconda-ks.cfg install.log.syslog
123.txt a.1 aaa install.log Music
[aming@localhost ~]$ sudo /bin/ls /root/ 第二次运行就不需要输入密码了,记忆了
\ 3.txt a.2 anaconda-ks.cfg install.log.syslog
123.txt a.1 aaa install.log Music
[aming@localhost ~]$ sudo /sbin/iptables -nvL
不要远程root用户登录
[root@localhost ~]# vi /etc/ssh/sshd_config
#LoginGraceTime 2m
PermitRootLogin no 修改这里
#StrictModes yes
[root@localhost ~]# service sshd restart = /etc/init.d/sshd restart
不让普通用户自己改密码(myxfc)
[root@xin_fc etc]# chmod 511 /usr/bin/passwd
又想让普通用户自己改密码
[root@xin_fc etc]# chmod 4511 /usr/bin/passwd