账号添加

useradd    默认会建立用户家目录,且权限为 700

'''
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录绝对路径] [-s shell] test 选项与参数: -u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号; -g :后面接的是 群组名 -M :强制!不要建立用户家目录!(系统账号默认值) -m :强制!要建立用户家目录!(一般账号默认值) -c :账号描述 -d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径! -r :建立一个系统的账号,这个账号的 UID 会有限制 (参考 /etc/login.defs) -s :后面接一个 shell ,若没有指定则预设是 /bin/bash -e :账号失效日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八字段
'''

useradd 的默认值 useradd -D,这个数据其实是由 /etc/default/useradd呼叫出来的

'''
GROUP=100         <==预设的群组 HOME=/home          <==默认的家目录所在目录 INACTIVE=-1        <==密码失效日,在 shadow 内的第 7 栏 EXPIRE=          <==账号失效日,在 shadow 内的第 8 栏 SHELL=/bin/bash      <==预设的 shell SKEL=/etc/skel       <==用户家目录的内容数据参考目录 CREATE_MAIL_SPOOL=yes   <==是否主动帮使用者建立邮件信箱(mailbox)
'''

UID/GID 还有密码参数参考的是/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 1000             <==使用者最小的 UID,意即小于 1000 的 UID 为系统保留 UID_MAX 60000              <==使用者能够用的最大 UID SYS_UID_MIN 201            <==保留给用户自行设定的系统账号最小值 UID SYS_UID_MAX 999            <==保留给用户自行设定的系统账号最大值 UID GID_MIN 1000             <==使用者自定义组的最小 GID,小于 1000 为系统保留 GID_MAX 60000             <==使用者自定义组的最大 GID SYS_GID_MIN 201            <==保留给用户自行设定的系统账号最小值 GID SYS_GID_MAX 999            <==保留给用户自行设定的系统账号最大值 GID CREATE_HOME yes            <==在不加 -M 及 -m 时,是否主动建立用户家目录? UMASK 077               <==用户家目录建立的 umask ,因此权限会是 700 USERGROUPS_ENAB yes        <==使用 userdel 删除时,是否会删除初始群组 ENCRYPT_METHOD SHA512        <==密码加密的机制使用的是 sha512 这一个机制!
'''

添加密码、启用账户

passwd  设定密码

'''
passwd [--stdin] test <==所有人均可使用来改自己的密码

passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] test <==root 功能

选项与参数:

--stdin :可以透过来自前一个管线的数据,作为密码输入,对 shell script 有帮助!
  echo "abc543CC" | passwd --stdin test
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;
-u :与 -l 相对,是 Unlock 的意思!
-S :列出密码相关参数,亦即 shadow 文件内的大部分信息。
-n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要更动密码
-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i :后面接『日期』,shadow 的第 7 字段,密码失效日期
'''

root可以修改任意用户的任意密码,包括123456。

普通用户只能修改自己的密码,且要符合复杂度。

PAM 模块管理密码,这个管理的机制写在 /etc/pam.d/passwd 当中。取代 /etc/login.defs 内的 PASS_MIN_LEN 的设定。

账号修改

usermod 账号相关数据微调

'''
usermod [-cdegGlsuLU] username

选项与参数:
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
-f :后面接天数,为 shadow 的第七字段。
-g :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group。
-a :与 -G 合用,可『增加次要群组的支持』而非『设定』!
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s :后面接 Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;
-L :暂时将用户的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。
-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻。
'''

usermod 的选项与 useradd 类似。因为 usermod 也是用来微调useradd 增加的使用者参数。

usermod 的 -L 和 -U 选项其实与 passwd 的 -l,-u是相同的。

账号删除

userdel 删除用户的相关数据

'''
userdel [-r] username

选项与参数:
-r :连同用户的家目录也一起删除
'''

用户功能

查询UID/GID等信息  ---   id [username]

新增群组

'''
groupadd [-g gid] [-r] 组名

选项与参数:
-g :后面接某个特定的 GID ,用来直接给予某个 GID 
-r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
'''

建立群组时,最好可以使用 groupadd -r test 来建立。

群组修改

groupmod 对group相关参数进行修改。

"""
groupmod [-g gid] [-n group_name] 群组名
选项与参数:
-g :修改既有的 GID 数字;
-n :修改既有的组名
"""

不要随意的更动 GID ,容易造成系统资源的错乱

群组删除

groupdel [groupname]

群组中有用户时,无法删除,最好也不要强行删除。

群组管理密码

gpasswd 群组管理员功能

# 关于系统管理员(root)做的动作:
gpasswd groupname
gpasswd [-A user1,...] [-M user3,...] groupname
gpasswd [-rR] groupname
选项与参数:
 :若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow)
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)
-M :将某些账号加入这个群组当中!
-r :将 groupname 的密码移除
-R :让 groupname 的密码栏失效

# 关于群组管理员(Group administrator)做的动作:
gpasswd [-ad] user groupname
选项与参数:
-a :将某位使用者加入到 groupname 这个群组当中!
-d :将某位使用者移除出 groupname 这个群组当中。