您的位置:首页 > 运维架构 > Linux

Linux用户管理命令的使用

2015-08-30 12:31 651 查看
一、用户相关的配置文件
大家都知道,Linux的中心思想就是“一切皆文件”,所以系统中上到硬件设备下到系统配置,都是由文件来存在于文件系统中。所以在了解用户和组相关命令之前,我们先来了解一下与用户和组相关的系统文件。

/etc/passwd:用户名、UID、基本组等信息
/etc/group:组名、GID、组内包含的用户;
/etc/shadow:用户密码及相关属性;
/etc/gshadow:组的密码及相关属性;
/etc/default/useradd :添加用户时的默认属性
/etc/skel :新用户默认配置文件(即用户家目录中的默认账户基本设置文件,如.bashrc、.bash_profile等)
/etc/login.defs:设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs

/etc/passwd中各字段的意义:

name:password:UID:GID:GECOS:directory:shell

登录名:x:UID:GID:comment:主目录:用户默认shell

/etc/shadow中各字段的意义:
login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

/etc/group中各字段的意义:
group_name:password:GID:user_list

Linux用户UID数值分布:
UID:0-65535 管理员:0 普通用户:1-60000 系统用户: CentOS6: 1-499 CentOS7:1-999 登录用户: CentOS6: 500+ CentOS7: 1000+
Linux组:GroupName/GID 管理员组:0 普通组: 1-499, 1-999 500+, 1000+
用户的基本组:用户所属第一个组,即在/etc/passwd文件中所定义的用户所属组用户的私有组:如果用户在创建时未指定用户组,则默认创建一和用户名相同的用户组,该组即为用户 的私有组用户的附加组:用户在原来已经有所属用户组后另又添加到的其它用户组
二、用户和组管理的相关命令(换句话说,命令就是查询修改上述配置文件内容的标准化操作接口)
useradd、usermod、passwd、userdel、groupadd、groupmod、gpasswd、groupdel
chage, chsh, chfn、id, w, who, whoami、su

useradd:创建用户
useradd [options] LOGIN
useradd -D [options]
-r: 创建系统用户
-u UID: 指定UID;
-g GID: 指定用户所属基本组,此组必须事先存在
-c 'COMMENT':
-d /PATH/TO/SOMEWHERE:指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制;/etc/skel
-s SHELL:设定用户的默认shell;
cat /etc/shells
-G GID,...:指定所属的附加组;
-M: 不给用户创建家目录;

练习:创建用户Oracle,所属附加组database和sql,ID号为3000, 家目录为/home/database

[root@gxd /]# useradd oracle -u 3000 -d /home/database
[root@gxd /]# usermod -a -G database,sql oracle
[root@gxd /]# id oracle
uid=3000(oracle) gid=3000(oracle) groups=3000(oracle),3001(database),3002(sql)
若要将用户从某些组中移除,则使用usermod命令使用-G参数,用户组中没有的组将会移除处理
[root@gxd /]# usermod -G oracle oracle
[root@gxd /]# id oracle
uid=3000(oracle) gid=3000(oracle) groups=3000(oracle)

groupadd:创建组
groupadd [OPTIONS] GROUPNAME
-g GID: 指明组ID;
-r: 创建系统组;

id:查看用户相关的id信息;
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: NAME

su:switch user, 切换用户或以其它用户的身份执行命令;
切换方式:
su USERNAME: 非完全切换;非登录式切换
su - USERNAME或su -l USERNAME: 完全切换;登录式切换

仅以指定用户的身份执行指定的命令:
su - USERNAME -c 'COMMAND'

usermod:用户属性修改
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
-s SHELL
-c 'COMMENT'
-d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
-l LOGIN:

-L:lock user
-U: unlock user

passwd:给用户添加密码
passwd [OPTION] [UserName]

-l: lock user
-u: unlock user

-n mindays: 最短使用期限;
-x maxdays:默认为99999天;
-w warndays:
-i inactivedays:

--stdin:从标准输出接收用户密码;

echo 'centos' | passwd --stdin centos

userdel:删除用户
userdel [-r] USERNAME
-r:删除用户的同时删除其家目录;

groupmod: 组属性修改
groupmod [OPTION] GROUPNAME
-n GROUP_NAME
-g GID

gpasswd:设定组密码

newgrp:切换基本组为指定的组 (临时的,只针对当前登录会话)

groupdel:删除组

chage:修改用户账号及密码的属性
chage [OPTION]... LOGIN
-d 上次修改密码的天数(时间)
-E 用户账户过期时间
-l 显示用户账户密码信息
-m 最短的用户密码使用天数(提示用户修改密码,不修改仍可登录,为0则密码长期有效)
-M 最长的用户密码使用天数(用户必须修改密码,不修改则无法登录使用)
-W 警告用户密码需要修改或者要过期的天数

其它命令:chfn, chsh, finger, whoami, who, w

chfn: 变更用户账户finger信息,即用finger命令查看到的信息
[root@gxd /]# chfn
Changing finger information for root.
Name [root]: dongdong
Office []: Fox Tech Group
Office Phone []: 66282888
Home Phone []: 66666666

[root@gxd /]# finger root
Login: root Name: dongdong
Directory: /root Shell: /bin/bash
Office: Fox Tech Group, 66282888 Home Phone: 66666666
On since Fri Aug 28 01:08 (CST) on pts/0 from 192.168.15.1
No mail.
No Plan.

chsh:变更用户登录Shell

finger:显示用户信息

whoami:显示当前登录有效ID的用户信息

who:打印当前登录用户信息

[root@gxd /]# who -a
system boot Aug 27 07:12
run-level 3 Aug 27 07:12
LOGIN tty4 Aug 27 07:13 2441 id=4
LOGIN tty1 Aug 28 01:07 15588 id=1
LOGIN tty5 Aug 27 07:13 2443 id=5
LOGIN tty2 Aug 27 07:13 2437 id=2
LOGIN tty3 Aug 27 07:13 2439 id=3
LOGIN tty6 Aug 27 07:13 2445 id=6
root + pts/0 Aug 28 01:08 . 15593 (192.168.15.1)

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