用户配置文件:/etc/passwdlinux
以上图root开头行为例咱们用“:”能够划分为7个部分:shell
一、root:用户名。用户名中的字符能够是大小写字母、数字、减号、点或下划线,不建议使用点、减号,容易形成混淆。安全
二、x:帐户的密码。此处基于安全因素,所有用x代替。bash
三、0:用户标识号,即uid。ssh
四、0:组标识号,即gid。ui
五、root:注释说明 ,一般记录该用户的一些属性,例如姓名、电话、地址等 ,能够用chfn命令来更改这些信息。加密
六、/root:用户的家目录,root用户的家目录就是/root,普通用户的家目录是/home/username。spa
七、/bin/bash:用户的shell,默认是/bin/bash,若是想创建一个不容许登陆的帐号,能够把该字段改成/sbin/nologin。3d
密码配置文件:/etc/shadowblog
咱们仍是以上图root开头行为例咱们用“:”能够划分为7个部分:
一、用户名。
二、用户密码,该密码已经加密。
三、上次更改密码的日期。
四、要过多少天才能够更改密码,默认为0。
五、密码多少天后到期,即在多少天内必须更改密码,例如,当咱们设置为10,则10天内必需要更改一次密码,否则将登录不了系统。默认为99999,即永远不须要更改。
六、即帐号的生命周期,表示帐号在这个日期前可使用,到期后帐号将做废。
七、保留字段。
groupadd:新增组,其格式为:groupadd [ -g GID ] groupname。
若是不加参数-g,系统会以默认的gid建立组,gid从1000开始,若是加参数-g,则能够自定义组的gid。
groupdel:删除组,其格式为:groupdel groupname。
若是一个组中有帐户,则只有组成员为空时,才能删除组。
增长用户的命令:useradd,其格式为:useradd [ -u UID ] [ -g GID ] [ -d HOME ] [ -M ] [ -s ] username。
参数u表示自定义UID。
参数g表示使新增的用户属于已经存在的某个组,后面能够跟组id,也能够跟组名。
参数d表示自定义用户的家目录 。
参数M表示不创建家目录。
注意:参数-M的做用只是不建立此用户的家目录,但/etc/passwd中仍有此用户的家目录字段,但用ls命令查看,会提示咱们目录不存在。
参数s表示自定义shell。
删除用户的命令:userdel,其格式为:userdel [ -r ] username。参数-r的做用是,当删除用户时,把用户的家目录也删除掉。
id username 能够查看用户的属性。
更改用户属性的命令:usermod,其格式为usermod [ -u UID ] [-g GID] [ -d HOME ] [ -s ] username。
其中,参数-u、-g、-d、-s的用户跟命令useradd的用户同样。
此外,命令usermod还有一个参数-G,表示为扩展组,此参数能够给一个用户设定多个组。
一个用户能够属于多个组,但一个GID只能对应一个组。
3.5 用户密码管理
帐户建立后,默认是没有密码的,密码字段会以“!!”显示,只有设置好密码后,才能够登陆系统。
密码设定的一些规则:
(1)长度大于10个字符;
(2)密码包含大小写字母、数字、特殊字符*、&、%等;
(3)不规则性(不要出现linux、love、123456等相似的);
(4)密码中不要带有本身的名字、电话、生日等信息。
passwd,更改用户密码(为用户设置密码),其格式为passwd [ username ]。若是命令后面不加用户名字,则是为本身设定密码。
密码设定后,密码字段则不会以“!!”显示:
-l:锁定用户密码。(usermod -L username 也能够锁定用户密码)
-u:解锁用户密码。(usermod -U username 也能够解锁用户密码)
此外,passwd --stdin username 也能够更改用户的密码:
命令mkpasswd用于生成密码。
Linux默认是没有这个命令的,咱们需安装一个expect软件包:
mkpasswd默认生成9位数密码,能够经过参数-l n 来生成n位数密码:
su命令,用于切换用户。其格式为:su [ - ] username。
加“-”后,会切换到切换用户的家目录下
而不加“-”,则路径仍是在root家目录下。
su还能够以指定用户的身份去执行一条命令:su - -c "touch /tmp/zhangjin.py" zhangjin
3.8 sudo命令
su命令切换到其余用户,前提是咱们要知道root的密码。那么,既然咱们已经知道了root用户的密码,也就能够直接用root用户的密码去登陆root了,这就存在很大的安全隐患。为了解决这个问题,因而又有了sudo命令。使用sudo命令的做用在于执行一个只有root才能执行的命令,可是须要须要输入用户本身的密码。
普通用户想要使用sudo命令,须要root预先设定,咱们可使用visudo命令编辑配置文件 /etc/sudoers。
上图中的root (指定哪一个用户拥有sudo权限) ALL(全部的主机)=(ALL)(获取哪一个用户的身份) ALL(可使用的sudo的命令有哪些)
如图,增长93行
而后咱们验证下zhangjin账户的权限:
若是想把不少用户都设置为具备sudo权限,能够这样设置:
把# %wheel ALL=(ALL) ALL前面的注释#去掉,让这一行生效便可。而后把须要设置sudo权限的全部用户都加入到wheel组中。
sshd服务的配置文件为 /etc/ssh/sshd_config ,在Linux中是默认容许root用户经过ssh远程登陆的,若是咱们想不容许root用户远程登陆Linux,能够经过修改配置文件 /etc/sshsshd_config 来实现,具体方法是,在此文件中查找#PermitRootLogin yes 修改成PermitRootLogin no,保存好配置文件后,再重启ssh服务便可: