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,如需转载请自行联系原作者


相关文章
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
717 0
|
消息中间件 存储 监控
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
本文介绍了如何使用Linux的I/O多路复用技术`epoll`来高效管理超过10,000个并发连接。`epoll`允许单线程监控大量文件描述符,显著提高了资源利用率。文章详细阐述了`epoll`的几个关键接口,包括`epoll_create`、`epoll_ctl`和`epoll_wait`,以及它们在处理并发连接中的作用。此外,还探讨了`epoll`在高并发TCP服务场景的应用,展示了如何通过`epoll`和线程/协程池来构建服务框架。
1300 110
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
149 3
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
159 11
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
204 2
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
351 1
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
333 1
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。