LINUX 用户管理学习笔记下
这一节学习了用户添加,用户修改,群组命令以及su/sudo的用法,虽然很乱,但基本上过了两三遍,也基本上没有问题了,在linux当中,添加用户,以及修改 /etc/passwd 和 /etc/shadow 用得还是较多的,不过这是对于多用户linux的运维,还是需要做下笔记的。
1.1 useradd 命令
[root@POG~]# useradd [<选项>] <用户名>
useradd命令选项:
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个组名就是我们上面提到的 initial group 该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的组名则是这个账号还可以加入的群组。这个选项与参数会修改 /etc/group 内的相关数据!
-M :强制!不要创建用户家目录!(系统账号默认值)
-m :强制!要创建用户家目录!(一般账号默认值)
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们配置的
-d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!
-r :创建一个系统的账号,这个账号的 UID 会有限制
-s :后面接一个 shell ,若没有指定则默认是 /bin/bash 的
-e :后面接一个日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八字段,亦即账号失效日的配置项目;
-f :后面接 shadow 的第七字段项目,指定密码是否会失效。0为立刻失效,-1 为永远不失效(密码只会过期而强制于登陆时重新配置而已。)
-p:设置密码,加密后的密码,一般用于脚本批量添加用户.
1.2 /etc/login.defs 文件
MAIL_DIR /var/spool/mail <==用户默认邮件信箱放置目录 PASS_MAX_DAYS 99999 <==/etc/shadow 内的第 5 栏,多久需变更密码日数 PASS_MIN_DAYS 0 <==/etc/shadow 内的第 4 栏,多久不可重新配置密码日数 PASS_MIN_LEN 5 <==密码最短的字符长度,已被 pam 模块取代,失去效用! PASS_WARN_AGE 7 <==/etc/shadow 内的第 6 栏,过期前会警告的日数 UID_MIN 500 <==使用者最小的 UID,意即小于 500 的 UID 为系统保留 UID_MAX 60000 <==使用者能够用的最大 UID GID_MIN 500 <==使用者自定义组的最小 GID,小于 500 为系统保留 GID_MAX 60000 <==使用者自定义组的最大 GID CREATE_HOME yes <==在不加 -M 及 -m 时,是否主动创建用户家目录? UMASK 077 <==用户家目录创建的 umask ,因此权限会是 700 USERGROUPS_ENAB yes <==使用 userdel 删除时,是否会删除初始群组 MD5_CRYPT_ENAB yes <==密码是否经过 MD5 的加密机制处理
1.3 修改密码命令passwd
[root@www ~]# passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号
选项与参数:
--stdin :可以透过来自前一个管线的数据,作为密码输入,对 shell script 有帮助!
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;
-u :与 -l 相对,是 Unlock 的意思!
-S :列出密码相关参数,亦即 shadow 文件内的大部分信息。
-n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要更动密码(可设置登陆改密)
-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i :后面接『日期』,shadow 的第 7 字段,密码失效宽限日期
LINUX 密码规则:
密码不能与账号相同;
密码尽量不要选用字典里面会出现的字符串;
密码需要超过 8 个字符;
密码不要使用个人信息,如身份证、手机号码、其他电话号码等;
密码不要使用简单的关系式,如 1+1=2, Iamvbird 等;
密码尽量使用大小写字符、数字、特殊字符($,_,-等)的组合。
2.1 帐号字段修改chage
[root@www ~]# chage [-ldEImMW] 账号名
选项与参数:
-l :列出该账号的详细密码参数;
-d :后面接日期,修改 shadow 第三字段(最近一次更改密码的日期),格式 YYYY-MM-DD
-m :后面接天数,修改 shadow 第四字段(密码最短保留天数)
-M :后面接天数,修改 shadow 第五字段(密码多久需要进行变更)
-W :后面接天数,修改 shadow 第六字段(密码过期前警告日期)
-I :后面接天数,修改 shadow 第七字段(密码失效日期)
-E :后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
2.2 帐号信息修改 usermod
[root@www ~]# usermod [-cdegGlsuLU] username
选项与参数:
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-u :后面接 UID 数字!即 /etc/passwd 第三栏的数据;
-g :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-s :后面接 Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。即修改 /etc/passwd 的第七栏;
-f :后面接天数,为 shadow 的第七字段。
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据!
-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group
-a :与 -G 合用,可添加次要群组的支持!
-L :暂时将用户的密码冻结,让他无法登陆。其实仅改 /etc/shadow 的密码栏。
-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻!
2.3 用户删除userdel ,用户信息查看 finger
[root@www ~]# userdel [-r] username
选项与参数:
-r :连同用户的家目录也一起删除
[root@www ~]# finger [-s] username
选项与参数:
-s :仅列出用户的账号、全名、终端机代号与登陆时间等等;
-m :列出与后面接的账号相同者,而不是利用部分比对 (包括全名部分)
3、群组命令
[root@www ~]# groupadd [-g gid] [-r] 组名
选项与参数:
-g :后面接某个特定的 GID ,用来直接给予某个 GID ~
-r :创建系统群组!与 /etc/login.defs 内的 GID_MIN 有关。
[root@www ~]# groupmod [-g gid] [-n group_name] 群组名
选项与参数:
-g :修改既有的 GID 数字;
-n :修改既有的组名
groupdel [groupname]
[root@www ~]# gpasswd groupname
选项与参数:
:若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow)
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)
-M :将某些账号加入这个群组当中!
-r :将 groupname 的密码移除
-R :让 groupname 的密码栏失效
-a :将某位使用者加入到 groupname 这个群组当中!
-d :将某位使用者移除出 groupname 这个群组当中。
4.1 sudo
[root@www ~]# sudo [-b] [-u 新使用者账号]
选项与参数:
-b :将后续的命令放到背景中让系统自行运行,而不与目前的 shell 产生影响
-u :后面可以接欲切换的使用者,若无此项则代表切换身份为 root 。
ERRO : test1 is not in the sudoers file. This incident will be reported.错误原因:
当用户运行 sudo 时,系统于 /etc/sudoers 文件中搜寻该使用者是否有运行 sudo 的权限;
若使用者具有可运行 sudo 的权限后,便让使用者『输入用户自己的密码』来确认;
若密码输入成功,便开始 sudo 后续接的命令(但 root 运行 sudo 时,不需要输入密码);
若欲切换的身份与运行者身份相同,那也不需要输入密码。
4.2 visudo 与 /etc/sudoers
从上面的说明我们可以知道,除了 root 之外的其他账号,若想要使用 sudo 运行属于 root 的权限命令,则 root 需要先使用 visudo 去修改 /etc/sudoers ,让该账号能够使用全部或部分的 root 命令功能。
单一用户可进行 root 所有命令,与 sudoers 文件语法:
假如我们要让 php100 这个账号可以使用 root 的任何命令,那么可以简单的这样进行修改即可:
[root@www ~]# visudo
....(前面省略)....
使用者账号 登陆者的来源主机名=(可切换的身份) 可下达的命令
root ALL = (ALL) ALL <==这是默认值 上面这一行的四个组件意义是: 系统的哪个账号可以使用 sudo 这个命令的意思,默认为 root 这个账号; 当这个账号由哪部主机联机到本 Linux 主机,意思是这个账号可能是由哪一部网络主机联机过来的, 这个配置值可以指定客户端计算机(信任用户的意思)。默认值 root 可来自任何一部网络主机 这个账号可以切换成什么身份来下达后续的命令,默认 root 可以切换成任何人; 可用该身份下达什么命令?这个命令请务必使用绝对路径撰写。 默认 root 可以切换任何身份且进行任何命令之意。
简单实例:
新建用户01:useradd -u 1100 -g smiling -M smiling1 小项:useradd -g ph100 test 使用的默认组,不会新建以自己命名的组。
新建用户02:useradd -u 1101 -G php100 -d /tmp/smiling2 -s /sbin/nologin -e 2016-12-21 smiling2
如果使用大G的话,会有两个群组,一个是默认自己的群组,一个是加入的有效群组。
新建用户03:useradd smiling4 -p '$1$JmqRGgH.$TBYidyqYo0sOI.ez3zWtJ/' 注:-p 后面是加密的密码。
赞,整理的很好。