Linux初窥:系统管理之(用户管理、用户组管理)

来源:互联网 发布:建材价格查询软件 编辑:程序博客网 时间:2024/05/18 13:46

配置文件

在Linux系统中主要是通过配置文件来实现对用户和用户组的管理,比较重要的有以下四个配置文件:
/etc/passwd(用户信息文件)、/etc/shadow(用户密码文件、影子文件)、/etc/group(组信息文件)、/etc/gshadow(组密码文件)。

用户信息文件

/etc/passwd文件中保存了Linux系统中所有用户的基本信息,使用man 5 passwd命令查看该配置文件的帮助,可知该配置文件中的每条记录都包含以下七个字段:account:password:UID:GID:GECOS:directory:shell,各个字段的含义如下图所示。

用户密码文件

/etc/shadow文件中存储了用户的密码信息,包含的内容如下图所示。
/etc/shadow配置文件中日期字段需使用时间戳来表示,即从1970年1月1日到指定日期之间所经历的天数,下面给出其换算方法。
//把时间戳换算为日期:14781为需要换算的时间戳date -d "1970-01-01 14781 days" "+%Y/%m/%d %H:%M:%S" //把日期换算为时间戳:2017/09/10为需要换算为时间戳的日期echo $(($(date --date="2017/09/10" +%s)/86400+1))

组信息文件

/etc/group文件中保存了Linux系统中所有用户组的信息,其内容各字段及其含义如下图所示。

组密码文件

/etc/gshadow文件中保存了用户组的密码信息,其内容各字段及其含义如下图所示。

用户管理命令

useradd命令

命令用途:添加新用户。
命令语法:useradd[选项][用户名]
常用选项:
-u:指定用户的UID;
-d:指定用户的家目录;
-c:指定用户的描述内容;
-g:指定用户的初始组;
-G:指定用户的附加组;
-s:指定用户的登录shell,默认为/bin/bash;
//新添加一个用户user1,并指定其UID、家目录、描述内容、附加组useradd -u 567 -d /user1 -c "this is a test user" -G group1 user1//执行以上命令以后会在/etc/passwd配置文件中增加以下user1内容user1:x:567:567:this is a test user:/user1:/bin/bash
使用useradd命令在添加用户时对于那些未设置值的字段,系统会根据/etc/default/useradd文件中指定的默认值进行设置。
新用户在创建时一般情况下会自动创建以下用户相关文件:
1、用户的家目录
  • 普通用户:/home/用户名/,默认所有者和所属组为此用户及其初始组,权限700;
  • 超级用户:/root/,默认所有者和所属组为root用户和root组,权限550;
2、用户的邮箱文件,默认文件名:/var/spool/mail/用户名
3、用户模板目录/etc/skel/,添加新用户时,会自动将模板目录下的文件复制到添加的新用户的家目录。

passwd命令

命令用途:设置用户密码。
命令语法:passwd[选项][用户名]
常用选项:
-S:查询用户的密码状态,仅root用户可用;
-l:暂时锁定用户,仅root用户可用;
-u:解锁用户,仅root用户可用;
--stdin:将管道符输出的内容作为用户密码;
//修改用户user1的密码为123echo "123" | passwd --stdin user1//暂时锁定user1用户passwd -l user1//解锁user1用户passwd -u user1

usermod命令

命令用途:修改用户信息。
命令语法:usermod[选项][用户名]
常用选项:
-u:修改用户的UID;
-d:修改用户的家目录;
-c:修改用户的描述内容;
-g:修改用户的初始组;
-G:修改用户的附加组;
-s:修改用户的登录shell;
-L:临时锁定用户;
-U:解锁用户;
//修改user1用户的UID、家目录、描述内容三个字段的值 usermod -u "666" -d /home/user1 -c "user1" user1//暂时锁定user1用户usermod -L user1//解锁user1用户usermod -U  user1

chage命令

命令用途:修改用户密码状态。
命令语法:chage[选项][用户名] 
常用选项:
-l:列出用户的详细密码状态;
-d:修改密码的最后一次修改日期;
-m:修改密码的最小修改时间间隔天数;
-M:修改密码有效期;
-W:修改密码过期前警告天数;
-I:修改密码过期后宽限天数;
-E:修改密码失效日期;
//修改密码的最后修改日期为1970年1月1日chage -d 0 user1

userdel命令

命令用途:删除用户。
命令语法:userdel[选项][用户名] 
常用选项:
-r:删除用户的同时删除用户家目录;
//删除用户user1userdel -r user1

id命令

命令用途:查看用户的UID和GID。
命令语法:id[用户名] 
//查看用户user1的UID和GID信息id user1

su命令

命令用途:切换用户。
命令语法:su[选项][用户名] 
常用选项:
-:连带用户的环境变量一起切换;
-c:仅执行一次命令;
//切换到root用户身份su - root//切换到root用户身份添加一个用户user1su - root -c "useradd user1"

who命令

命令用途:显示当前登录系统的所有用户的信息。
命令语法:who
//查看当前登录系统的用户信息(登录用户+登录终端+登录时间[+远程主机的IP地址])who
roottty1          2013-08-19 13:29rootpts/0      2013-08-19 15:04 (192.168.0.134) pengjunlee        pts/1      2013-12-20 10:37 (180.111.155.40)
注:tty表示本地终端登录,pts表示远程终端登录。

w命令

命令用途:与who类似,显示当前登录系统的所有用户的更为详细的信息。
命令语法:w
//显示当前登录系统的用户的详细信息w
18:18:18 up  8:37,  3 users,  load average: 0.00, 0.00, 0.00USER        TTY          FROM              LOGIN@     IDLE    JCPU   PCPU    WHATroot        tty1          -                18:18      16.00s  0.01s  0.01s   -bashroot        pts/0    192.168.12.1          09:46      20:47   0.55s   0.55s   -bashpengjunlee  pts/1    192.168.12.1          18:05      0.00s   0.12s   0.09s    w
注:使用w命令显示的内容依次为:登录用户、登录终端、登录IP、登录时间、空闲时间、累计占用CPU时间、当前操作占用的CPU时间和当前正在执行的操作。

用户组管理命令

groupadd命令

命令用途:创建新的用户组。
命令语法:groupadd[选项][组名]
常用选项:
-g:指定用户组的GID;
//添加一个default_group组,并指定其GID为600groupadd -g 600 default_group

groupmod命令

命令用途:修改用户组信息。
命令语法:groupmod[选项][组名]
常用选项:
-g:修改用户组的GID;
-n:修改用户组的组名;
//修改组group1的组名为default_groupgroupmod -n  default_group group1

groupdel命令

命令用途:删除用户组。
命令语法:groupdel[组名]
//删除group1用户组groupdel group1

gpasswd命令

命令用途:gpasswd命令用于向组中添加或删除用户。
命令语法:gpasswd[选项][组名]
常用选项:
-a:添加用户;
-d:删除用户;
//将用户user1添加到goup1组中gpasswd -a user1 group1


原创粉丝点击