在Linux系统中,用户的信息保存在系统文件中,这些用户信息文件有以下4个:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
用户和组管理命令
通过用户和组管理命令,管理员可以添加、删除、修改用户和组,这些命令在使用时可以带不同的参数,实现各种功能。
useradd 添加用户
用法: useradd [选项] 用户名
例如:
[root@localhost ~]# useradd user1
添加用户user1
添加用户账号(useradd)
格式:
# useradd [<选项>] <用户名> 常用选项
-g group | 指定新用户的主(私有)组。 |
-G group | 指定新用户的附加组。 |
-d directory | 指定新用户的自家目录。 |
-s shell | 指定新用户使用的Shell,默认为bash。 |
-e expire | 指定用户的登录失效时间,例如:08/10/2001 |
-M | 不建立新用户的自家目录。 |
passwd 修改用户密码
用法:
passwd [选项] 用户名
例如:
[root@localhost ~]# passwd user1
更改用户 user1 的密码 。
新的密码:
重新输入新的密码:
passwd: 所有的身份验证令牌已经成功更新
注意:每次修改用户密码要重复输入两次。
userdel 删除用户
用法:
userdel [选项] 用户名
id 查看用户账户属性
用法:
id [选项] 用户名
修改用户账号(usermod)
格式:
# usermod [<选项>] <用户名>
选项与useradd命令基本相同
举例: # usermod -l user2 user1
修改用户名
usermod -G softgroup jjh
将用户jjh添加到附加组softgroup
usermod -aG softgroup jjh
将用户jjh添加到附加组softgroup(差别?)
usermod -g gid groupname
修改已有组号为gid的主要组名字为groupname
修改用户账号(usermod)
# usermod -L user1 锁定用户账号
# usermod -U user1 解锁用户账号
比较:
gpasswd -l user1
锁定用户账号
gpasswd -u user1
解锁用户账号
组成员管理
向组中添加用户
gpasswd -a <用户账号名> <组账号名>
# gpasswd -a user1 staff
比较:usermod -G <组账号名> <用户账号名>
从标准组中删除用户
gpasswd -d <用户账号名> <组账号名>
# gpasswd -d user1 staff
比较usermod -G “” username
groupadd 添加组
用法: groupadd [选项]
组名 groupdel 删除组
用法: groupdel [选项] 组名
groupmod 修改组账户属性
用法: groupmod [选项] 组名
su 切换用户身份
用法: su [选项] 用户名
sudo 以root身份执行命令
用法:sudo [选项] 命令
允许其他用户以root身份来执行指令,在/etc/sudoers文件中设置了可执行sudo指令的用户和可以执行的命令。
sudo的配置文件是/etc/sudoers,只有被列入到sudoer列表中的用户才能正常使用sudo命令。
visudo ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息;
sodu -l 查看哪些命令是可以执行或禁止的
/etc/sudoers文件中语法格式
who which_hosts=(runas) command 谁;来自哪台机器;以哪个用户的身份;命令
如:root ALL=(ALL) ALL
表示的是root用户可以来自任何机器以任何用户的身份执行任何命令
如: %test1 ALL=(ALL) /usr/bin/ls /etc/bin/cat
禁用root
1)修改/etc/pam.d/login文件增加下面一行
auth required pam_succeed_if.so user != root quiet
2)禁止root本地登录
创建空文件 securetty,即 touch /etc/securetty
本地登录login会读取文件/etc/login.defs,65 - 70行的内容如下
CONSOLE /etc/securetty
3)禁止root远程登录 若ssh服务为openssh,则在/etc/ssh/sshd_config文件下将 #PermitRootLogin yes 改为 PermitRootLogin no