在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