1、/etc/ passwd

每一行就是一个用户的信息。以‘:’分隔为七段;

第一段:用户名

第二段:密码控位符,加密后的密码保存在 /etc/shadow。为空的话,表示不去验证密码。

第三段:UID,用户ID。0是root用户,1-499是系统用户,500以上是普通用户。

第四段:GID,组ID。默认情况下GID跟UID是一样的。

第五段:用户描述。chfn  修改用户描述。

第六段:用户家目录。

第七段:用户bash(shell)。默认情况下为/bin/bash。如果是nologin,没有shell,表示用户不能登陆。

vi进去手动更改,UID=0时 普通用户也跟root具备 一样权限,系统以UID来辨别身份。

系统默认有一个备份文件:/etc/passwd-

2、/etc/shadow

每一行对应一个用户。以':'分隔为九段;

第一段:用户名

第二段:加密后密码。$6开头为sha-512加密;$5开头为sha-256加密;$1开头为md5加密;!!表示空密码;*             表示用户被锁定;!开头表示用户被锁定,!!开头表示密码被锁定。

第三段:密码更改后离1970-1-1(第一个时间戳开始的那天)过去了多少天

第四段:表示多少天后才可以更改密码。0表示不限制。

第五段:密码失效天数,表示多少天后密码失效(最大值9999)。

第六段:警告时间,表示距密码失效前多少天,提示密码N天后会失效。

第七段:默认为空。表示帐号的失效时间。密码到期后,过N天帐户会被锁定。

第八段:生命周期。表示帐号可以存活多久。

第九段:保留字段

系统默认有一个备份文件:/etc/shadow-

3、用户和组管理

groupadd 创建组。groupadd xxxx 创建xxxx组。

/etc/group    查看组相关信息。系统默认有一个备份文件:/etc/group-

/etc/gshadow    组密码信息。系统默认有一个备份文件:
/etc/gshadow-
groupadd -g NUM XXXX 创建并指定xxxx组的GID    
 groupdel  删除组。groupdel xxxx  删除组。前提是该组不存在用户。

useradd 创建用户。useradd xxxx 创建xxxx用户

-u 指定UID。
-g 加入指定主组(组名或者GID),加入后即为该用户的主组。前提是指定的组已经存在。
-G 加入指定的附属组(组名或者GID)。前提是指定的组已经存在。
-c  用户描述
-d  指定家目录。useradd -d /home/xxxx username
-M 不创建家目录,手动再去创建家目录的时候,要注意目录的权限
-s  指定用户shell

userdel 删除用户

-f:强制删除用户,不管用户是否已登陆

-r:删除与用户相关的所有文件

usermod    更改用户帐户属性信息

-L 锁定用户,用户无法登陆

-U 解锁用户

-u 指定UID。

-g 加入指定主组(组名或者GID),加入后即为该用户的主组。前提是指定的组已经存在。

-G 加入指定的附属组(组名或者GID)。前提是指定的组已经存在。

-s  指定用户shell

passwd 更改用户密码。passwd xxxx

-l 锁定用户密码,无法登陆。

-u 解决用户密码

passwd --stdin username 更改密码时只需要输入一次,不过密码是明文输入。

echo "password" | passwd --stdin username    更改密码

echo -e "password\npassword\n" |passwd username 输入两次密码。-e的作用是激活转义字符。

su 切换用户。

su username    用户环境都不会切换过去

su - username 完全切换

su -c "touch /tmp/1.txt" - user1    以用户user1的身份创建一个文件"/tmp/1.txt"

visudo  sudo命令相关的配置文件

示范:

##Allow root to run any commands anywhere

root            ALL=(ALL)            NOPASSWD:ALL

第一段表示用户

第二段的第一个ALL,表示所有来源;第二个(ALL),表示临时切换的用户

第三段临时可执行的命令,必须输入绝对路径;NOPASSWD:表示不输入密码

user1            ALL=(root)        /bin/cp

上面这一段,表示,user1用户可以在以任何地址登陆的情况下,临时以root的身份,执行cp命令

%XXX表示组

使用sudo命令的时候,会要求输入用户的密码。输入密码后会保存一段时间,密码保存在某个文件中

su和sudo命令的区别

http://www.cnblogs.com/LinuxSuDa/p/4300562.html

不允许root用户远程登陆

ssh_config 是客户端的配置文件
sshd_config 是服务端的配置文件
vi /etc/ssh/sshd_config
#PermitRootLogin yes  ==>PermitRootLogin no
保存退出,重启sshd服务

打开终端后,等很长时间才到输入用户名的界面

vi /etc/ssh/sshd_config
#UseDNS yes  ==>UseDNS no
保存退出,重启sshd服务

生成不规则字符串的工具

yum install -y expect
安装好后,可以使用命令
mkpasswd生成不规则字符串
-l 指定密码长度
-s 指定特殊字符个数

keepass记录密码的工具

/etc/skel/普通用户的默认权限的模板

id username    查看用户的UID、GID。主组跟附属组都会列出来。

id=xxx,gid=xxx,gid就是指主组,其它的为附属组

时间同步:

    手动更改时间:date -s “2015-3-23 11:10:00”

    ntpdate time.windows.com 自动同步时间