Linux用户和组管理

简介:

    Linux的学习者都知道,Linux的每个文件都有相当多的属性与权限。其中最重要的就是文件所有者的概念。今天我就总结一下用户与组相关的一些命令。


 1.用户的概念

      系统中的每个进程(运行程序)都作为一个特定用户运行。每个文件归一个特定用户所有。对文件和目录的访问受到用户的限制。与运行进程相关联的用户可确定该进程可访问的文件和目录。 

若要查看与进程相关联的用户,在ps命令中包含u选项。第一列显示用户名:

[root@serverX ~]# ps aux

USER     PID %CPU %MEM    VSZ   RSS  TTY      STAT START   TIME  COMMAND

root            1   0.0  0.0    19244  1424     ?        Ss   21:00   0:01  /sbin/init

root            2  0.0  0.0            0       0     ?        S    21:00   0:00  [kthreadd]

student   114   0.0  0.2   106008 1240     pts/0      S    21:00   0:00  /bin/sh


若要查看与某一文件或目录相关联的用户,则使用ls -l命令。第三列显示用户名:

[root@serverX ~]# ls -l /tmp

-rw-------. 1 root    root     9412 Aug  3 22:49 sv1jc.tmp

-rw-------. 1 student student 24288 Jul 30   21:24 sv25e.tmp

   

2.Linux用户在数据库中定义。

      默认情况下,系统使用简单的“平面文件”(即/etc/passwd文件)存储有关本地用户的信息。/etc/passwd采用以下格式(七个冒号分隔字段):

account:password:UID:GID:GECOS:directory:shell

      用户属性:

 account是UID到名称的一种映射,便于用户使用。

 password以前是以加密格式保存密码的位置。现在密码存储在称为/etc/shadow的单独文件中。

 UID是用户的ID,在最基本的级别标识用户的编号。

 GID是主组ID,默认情况下,是与所有新建文件关联的号码,用于潜在的合并。

 GECOS字段存储任意文本,通常是用户的实际姓名、办公电话或个人电话号码。

 directory是用户的个人数据和配置文件的位置。

 shell是在用户登录时,以及如果shell(例如/bin/bash)提供用户命令行提示时,执行的程序。


3.管理本地用户

3.1 useradd创建用户

    useradd username可在无选项的情况下运行时,为/etc/passwd中的所有字段设置合理的默认值

    useradd在默认情况下不设置任何有效密码,用户无法登录

    useradd –help将显示可用于覆盖默认值的基础选项  

            -c comment 指定一段注释性描述。
            -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
            -g 用户组 指定用户所属的用户组。
            -G 用户组,用户组 指定用户所属的附加组。
            -s Shell文件 指定用户的登录Shell。
            -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

3.2 userdel删除用户

    userdel username从/etc/passwd中删除用户,但默认情况下,主目录保持不3变。

    userdel -r username可删除用户和用户的主目录。

3.3  id显示用户信息

     id 将显示用户的信息,包括其UID编号和组成员身份。

     id username将显示username的用户信息,包括其UID编号和组成员身份。

3.4 passwd设置密码

    passwd username可用与设置用户的初始密码,或更改该用户的密码。

3.5 UID范围

 UID 0是root,且具有特殊权限

 UID 1-499按约定是“系统用户”-一般是非交互服务帐户

 UID 500+是人们用来交互访问计算机的“常规用户”


4.管理密码

    一直以来,密码都存储在/etc/passwd文件中。但是/etc/passwd必须完全可读,因为命令(例如ls)需要访问该文件才能将UID映射到用户名。

    将密码迁移到更加安全的/etc/shadow文件,该文件支持若干个不同的密码加密算法。只要加密的密码存储在专用文件中,密码期限策略和数据就可以存储。


   4.1密码哈希中存储有哪3条信息?

$1$myPMmLiM$NUAUYAnGzIt1maaTWmj1k.

1. 1 -哈希算法(1表示MD5哈希)

2. myPMmLiM – 用于加密哈希的salt

3. NUAUYAnGzIt1maaTWmj1k. - 已加密的哈希


   4.2/etc/shadow字段

root:$1$myPMmLiM$NUAUYAnGzIt1maaTWmj1k.:15183:0:99999:7:::

1. 用户名

2. 密码散列

3. 上次密码更改日期(自1970年1月1日以来的天数)

4. 最短密码期限(按天数计,0 = 无最短期限要求)

5. 最长密码期限(按天数计)

6. 密码警告期限(按天数计,0 = 未指定警告)

7. 密码非活动期限(按天数计)

8. 账户到期日(自1970年1月1日以来的天数)

    

   4.3下图显示了相关的密码期限参数,可以使用chage对其进行调整,以实施密码期限策略。

wKiom1fH4R3i5BfVAAA2gq0fSJs950.png


示例:

# chage -m 0 -M 90 -W 7 -I 14 username

在下次登录时,chage -d 0 username将强制更新密码。

chage -l username 将列出用户名的当前设置。

usermod 可以修改账户,包括通过-L选项进行“锁定”。


5.管理组

   与用户一样,组也有名称和编号(GID)。本地组在/etc/group中定义。LDAP也可用于提供组信息。

  5.1主要组

   每个用户只有一个主要组。

   对于本地用户,主要组通过/etc/passwd第三个字段中列出的组的GID编号定义

   通常,用户创建的新文件归主要组所有。

   通常,新创建用户的主要组为具有与该用户相同名称的新创建组。该用户是这一用户专用组(UPG)的唯一成员。

  5.2补充组

   用户可以是0或多个补充组的成员。

   属于本地组补充成员的用户列在/etc/group中组条目的最后一个字段中。对于本地组,用户成员身份

   由/etc/group中组条目的最后一段中找到的逗号分隔的用户列表来确定。

   groupname:password:GID:user1,user2,user3

   补充组成员身份用来帮助确保用户具有访问系统中文件和其他资源的权限。

  5.3管理补充组

1. groupadd -g 601 groupname  创建名为groupname且GID为601的补充组。

2. usermod -aG groupname username  会将用户username添加到groupname中。


6.chown命令改变某个文件或目录的所有者和所属的组
    

     该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。


    语法:

    chown(选项)(参数)

   参数:
    -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理; 

    -c或——changes:效果类似“-v”参数,但仅回报更改的部分; 

    -f或--quite或——silent:不显示错误信息;

    -h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件; 

    -v或——version:显示指令执行过程; 


  本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1845237,如需转载请自行联系原作者


相关文章
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
39 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
1月前
|
存储 监控 Shell
【Shell 命令集合 磁盘管理 】Linux 管理磁盘配额 quota命令使用教程
【Shell 命令集合 磁盘管理 】Linux 管理磁盘配额 quota命令使用教程
37 0
|
28天前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
61 5
|
1月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
56 1
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
33 0
|
1月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
37 2
|
1月前
|
存储 监控 Shell
【Shell 命令集合 磁盘管理 】Linux 设置和管理用户或组的磁盘配额限制 edquota命令使用教程
【Shell 命令集合 磁盘管理 】Linux 设置和管理用户或组的磁盘配额限制 edquota命令使用教程
44 0
|
16天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
10天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
102 2