您的位置:首页 > 其它

用户与组管理

2016-03-10 22:29 176 查看
<pre name="code" class="php">用户与组管理
==================================================

一:账号的管理
---------------------------------------------------------------------------------------------
(1)useradd:创建一个新的用户或更新默认的新用户信息
SYNOPSIS
useradd [options] LOGIN
useradd -D
useradd -D [options]
OPTIONS
-c, --comment COMMENT:是一个简短的登录描述,默认是用户的全名。
~]# useradd -c 'login description' test

-d, --home-dir HOME_DIR:指定用户家目录:目标路径不能事先存在,否则会有警告,不会得利skel相关的文件给用户
~]# mkdir /home/test1
~]# ls /home
mdx  test1
~]# useradd -d /home/test1 test1
useradd: warning: the home directory already exists.  Not copying any file from skel directory into it.
useradd:警告:这个家目录已经存在,不能复制任何文件到skel目录里
~]# useradd -d /home/test2 test2

-D, --defaults:创建用户默认选项
-b, --base-dir BASE_DIR
-e, --expiredate EXPIRE_DATE
-f, --inactive INACTIVE
-g, --gid GROUP
-s, --shell SHELL

-e, --expiredate EXPIRE_DATE:用户帐户将被禁用的日期,日期格式为:YYYY-MM-DD
~]# vi /etc/default/useradd
EXPIRE=             (默认为空)
~]# useradd -e 2016-03-09 user
~]# chage -l user
...
Account expires           : Mar 09, 2016    (用户过期时间)
...

-f, --inactive INACTIVE:密码过期后的天数,直到该帐户被永久禁用。0:在密码过期时禁用该帐户,1:禁用该功能。
~]# vi  /etc/default/useradd (查看默认值)
INACTIVE=-1

-g, --gid GROUP:指定主组(组id或者组名)
~]# id test
uid=1001(test) gid=1001(test) groups=1001(test)
~]# useradd -g 1001 test1   或者  useradd -g test test1
~]# id test1
uid=1003(test1) gid=1001(test) groups=1001(test)

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用户的附加组。每个组由一个逗号分隔,中间没有空格。
~]# useradd -G test,test1,test2,test3 user
~]# id users
~]# uid=1004(user) gid=1005(user) groups=1005(user),1001(test),1002(test2),1003(test3),1004(test1)

-m, --create-home:强制创建家目录
~]# vi /etc/login.defs
56 # If useradd should create home directories for users by default
57 # On RH systems, we do. This option is overridden with the -m flag on
58 # useradd command line.
59 #
60 CREATE_HOME     yes   (如果选项为no的话需要指定 -m 强制创建家目录,默认为yes)
~]# useradd user (默认为yes状态)
~]# ls /home
mdx  user
~]# vi /etc/login.defs
CREATE_HOME     no   (修改为no)
~]# useradd test  (默认为不创建家目录)
~]# ls /home
mdx  user
~]# useradd -m test1   (强制创建家目录)
~]# ls /home
mdx  test1  user

-M, --no-create-home:不创建家目录,甚至系统/etc/login.defs设置为yes
~]# vi /etc/login.defs
CREATE_HOME     yes   (默认值为yes)
~]# useradd -M user
~]# ls /home
mdx

-p, --password PASSWORD:指定用户默认登录密码
~]# useradd -p 123456 user

-r, --system:创建一个系统账户
~]# useradd -r user
~]# ls /home
mdx
~]# id user
uid=992(user) gid=990(user) groups=990(user)

-s, --shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell。

-u, --uid UID:指定用户uid
~]# useradd -u 2000 user
~]# id user
uid=2000(user) gid=2000(user) groups=2000(user)
注意:用户id必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。

---------------------------------------------------------------------------------------------
(2)usermod:修改用户帐户
SYNOPSIS:
usermod [options] LOGIN
OPTIONS:
-c, --comment  COMMENT:用户密码文件注释字段的新值。它通常使用 chfn 修改
-d, --home  HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;
~]# ls /home
mdx  user
~]# usermod -md /home/user1 user
~]# ls /home
mdx  user1

-g, --gid GROUP:用户新主租
a选项,表示为用户添加新的附加组;
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user)
~]# id test
uid=1002(test) gid=1002(test) groups=1002(test)
~]# usermod -g user test  (覆盖)
~]# id test
uid=1002(test) gid=1003(user) groups=1003(user)

-G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组,同名的附加组不变,一同使用 -a 表示追加
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user)
~]# usermod -G test1,test2,test3 user
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user),1004(test2),5003(test1),5004(test3)
~]# usermod -G test user     (覆盖原来的组)
~ ]# id user
uid=1003(user) gid=1003(user) groups=1003(user),5002(test)
~]# usermod -aG test1,test2,test3 user   (一同使用-a 追加到原来的组)
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user),5002(test),1004(test2),5003(test1),5004(test3)

-l, --login  NEW_LOGIN:修改用户名。家目录,邮箱等不会改变
~]# usermod -l aaa user   (usermod -l 新用户名 原用户名)
~]# id aaa
uid=1003(aaa) gid=1003(user) groups=1003(user)

-s, --shell  SHELL:修改用户登录shell
~]# usermod -s abc aaa

-u, --uid  UID:修改用户uid
~]# id test1
uid=5003(test1) gid=5003(test1) groups=5003(test1)
~]# usermod -u 4000 test1
~]# id test1
uid=4000(test1) gid=5003(test1) groups=5003(test1)

-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”
~]# usermod -L test1
~]# vi /etc/shadow
test1:!!:16870:0:99999:7:::

-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”
~]# usermod -U test1
~]# vi /etc/shadow
test1:!:16870:0:99999:7:::

---------------------------------------------------------------------------------------------
(3)userdel:删除用户帐户和相关文件
SYNOPSIS:
userdel [options] LOGIN
OPTIONS:
-r, --remove:家目录和用户邮箱一起删除
~]# userdel -r test
---------------------------------------------------------------------------------------------
(4)passwd:密码管理命令(输入的时候,屏幕上不会有任何提示 如:**)
SYNOPSIS:
root用户:(无需输入原密码,密码可以简单化)
root]# passwd test2
New password: (新密码)
Retype new password: (再次输入新密码)
passwd: all authentication tokens updated successfully.

当前用户:(输入原密码,新密码必须符合规范)
mdx]$ passwd
(current) UNIX password: (原密码)
New password: (新密码)
Retype new password: (再次输入新密码)

密码规范:
(1) 不能少于8个字符。
(2) 不能使用与过去的密码太相似的密码。
(3) 应该使用四类字符中的至少三类。

DESCRIPTION:
-l:锁定密码
-u:解锁解密
-d:清除密码

--stdin:从标准输入接收密码。
echo "PASSWORD" | passwd  --stdin  USERNAME
---------------------------------------------------------------------------------------------
(5)id:打印真实有效的用户和组
SYNOPSIS:
id [OPTION]... [USER]
DESCRIPTION:
mdx]# id test
uid=1001(test) gid=1001(test) groups=1001(test),1000(mdx)

-g, --group:打印有效的用户主组id
mdx]# id -g test
1001

-G, --groups:打印所有的附加组
mdx]# id -G test
1001 1000

-u, --user:打印有效的用户id
mdx]# id -u test
1001
---------------------------------------------------------------------------------------------
(6)su:用户切换
SYNOPSIS:
su [options...] [-] [user [args...]]
OPTIONS:
切换用户:
(1) 不读取目标用户的配置文件(非登录式切换,半切换);
su  USERNAME
(2) 读取目标用户的配置文件(登录式切换,完全切换);
su  -l  USERNAME
su  -  USERNAME

-c command, --command=command:仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操作;
---------------------------------------------------------------------------------------------
(7)chfn:改变用户信息
SYNOPSIS:
chfn  [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [user‐
name]
OPTIONS
-f, --full-name full-name:指定真实用户名
-o, --office office:指定办公室地址
-p, --office-phone office-phone:设定办公室电话
-h, --home-phone home-phone:设置家里手机号码
---------------------------------------------------------------------------------------------
(8)chsh: 改变登录shell
SYNOPSIS
chsh [-s shell] [-l] [-u] [-v] [username]
OPTIONS
-s, --shell shell:设定登录shell
-l, --list-shells:打印shell列表并退出
---------------------------------------------------------------------------------------------

二:用户组的管理
---------------------------------------------------------------------------------------------
详解:/etc/group
格式:test:x:1007:
组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔
---------------------------------------------------------------------------------------------
(1)groupadd:添加组
SYNOPSIS:
groupadd [options] group
OPTIONS:
-g  GID:指明GID。
mdx]# groupadd -g 2000 test1
mdx]# tail -1 /etc/group
test1:x:2000:

-r, --system:系统组。
mdx]# groupadd -r test2
mdx]# !tail -1 /etc/group
test2:x:990:
---------------------------------------------------------------------------------------------
(2)groupmod:修改组
SYNOPSIS:
groupmod [options] GROUP
OPTIONS:
-g  GID:改变组id
mdx]# cat /etc/group | grep ^test2
test2:x:990:
mdx]# groupmod -g 3000 test2
mdx]# cat /etc/group | grep ^test2
test2:x:3000:

-n, --new-name NEW_GROUP:修改组名。
mdx]# cat /etc/group | grep ^test2
test2:x:3000:
mdx]# groupmod -n test3 test2
mdx]# cat /etc/group | grep ^test2      (test2组不存在)
mdx]# cat /etc/group | grep ^test3
test3:x:3000:
---------------------------------------------------------------------------------------------
(3)groupdel:删除组
SYNOPSIS:
groupdel [options] GROUP
OPTIONS:
mdx]# cat /etc/group | grep ^test3
test3:x:3000:
mdx]# groupdel test3
mdx]# cat /etc/group | grep ^test3
mdx]#
---------------------------------------------------------------------------------------------
(4)gpasswd:管理组  /etc/group 和 /etc/gshadow
SYNOPSIS:
gpasswd [option] group
OPTIONS:
修改组密码:
mdx]# gpasswd test
Changing the password for group test
New Password:
Re-enter new password:
mdx]# grep ^test /etc/gshadow
test:$6$4ixwfMX2abZ6Ug7$0HKG5LLycTh.nBhNYjth1r1kERPS6PZIfyyy6A15b/TNehEjKl3ua.TDOHBQwk.YIzyVb6.9mVrOPXh0GoO/J1::

-a, --add user:添加用户到组
mdx]# gpasswd -a mdx test
Adding user mdx to group test
mdx]# grep ^test /etc/group
test:x:1001:mdx

-d, --delete user:从组删除用户
mdx]# gpasswd -d user test
Removing user user from group test
mdx]# grep ^test /etc/group
test:x:1001:

-r, --remove-password:删除密码,密码为空。
~]# gpasswd -r test
~]# grep ^test /etc/gshadow
test:::

-R, --restrict:限制用户登入组,只有组中的成员才可以用newgrp加入该组
~]# gpasswd -R test

-A, --administrators user,...:指定管理员
~]# gpasswd -A mdx test
~]# grep ^test /etc/gshadow
test:!:mdx:mdx,user

-M, --members user,...:指定组成员(覆盖原来)
~]# grep ^test /etc/group
test:x:1001:user,mdx,test1,test2
test1:x:1003:
test2:x:1004:
~]# gpasswd -M mdx test
~]# grep ^test /etc/group
test:x:1001:mdx
test1:x:1003:
test2:x:1004:
---------------------------------------------------------------------------------------------
(5)newgrp:登录到一个新的组
SYNOPSIS:
newgrp [-] [group]
OPTIONS:
~]$ newgrp test
Password:
---------------------------------------------------------------------------------------------
(6)chage:改变用户密码终止日期
  参数意思:
  -m, --mindays MIN_DAYS :密码可更改的最小天数。为零时代表任何时候都可以更改密码。
  -M, --maxdays MAX_DAYS :密码保持有效的最大天数。
  -W, --warndays WARN_DAYS :用户密码到期前,提前收到警告信息的天数。
  -E, --expiredate EXPIRE_DATE: 帐号到期的日期。过了这天,此帐号将不可用。(YYYY-MM-DD)
  -d 上一次更改的日期。(YYYY-MM-DD)
  -I, --inactive INACTIVE: 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
  -l 例出当前的设置。
root]$ chage -l mdx
-d:最近一次密码修改时间                      : Mar 01, 2016
密码过期时间                                    : never
密码失效时间                                    : never
-E:帐户过期时间                                   : never
-m:两次改变密码之间相距的最小天数    : 0
-M:两次改变密码之间相距的最大天数    : 99999
-W:在密码过期之前警告的天数              :7




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: