Linux用户管理

Posted Watcher123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux用户管理相关的知识,希望对你有一定的参考价值。

Environment: CentOS_7.4 64位;

M1. Linux的用户分类:

① 超级用户(UID=0):   一般指root用户
② 伪用户(UID 1-499):     伪用户与系统和程序服务相关,因为并不是真实的使用者,所以叫伪用户,如bin、daemon、shutdown、halt、ftp、sshd等,与Linux系统的进程相关。
③ 普通用户(uid 500-60000):   使用Linux命令常规创建的用户         

 

M2. Linux的用户管理文件:

Linux用户管理文件最重要的就是/etc/passwd/etc/shadow这两个文件。其中/etc/passwd是用来存储用户信息的,它的基本格式如下:

示例: root:x:0:0:root:/root:/bin/bash

文件内容每一行代表一个用户的信息,一共包括7个字段的信息,每个字段的信息用冒号隔开。这7个字段分别代表:

1. 账号名称:即登陆时的用户名;

2. 密码:早期UNIX系统的密码是放在这个文件中的,但因为这个文件的特性是所有程序都能够读取,所以,这样很容易造成数据被窃取,因此后来就将这个字段的密码数据改放到/etc/shadow中了;

3. UID:用户ID,每个账号名称对应一个UID,通常UID=0表示root管理员;

4. GID:组ID,与/etc/group有关,/etc/group与/etc/passwd差不多,是用来规范用户组信息的;

5. 用户信息说明栏: 用来解释这个账号是干什么的;

6. 家目录:home目录,即用户登陆以后跳转到的目录,以root用户为例,/root是它的家目录,所以root用户登陆以后就跳转到/root目录这里;

7. Shell:用户使用的shell,通常使用/bin/bash这个shell,这也就是为什么登陆Linux时默认的shell是bash的原因,就是在这里设置的, 如果要想更改登陆后使用的shell,可以在这里修改。另外/sbin/nologin可以用来替代让账号无法登陆的命令,nologin的作用就是限制某些用户通过ssh登陆到shell上。

M3. 超级用户与普通用户的区别:

"root用户可以在Linux系统上做任何操作,权限没有收到任何限制。一般需要root权限的任务包括:移动文件或者文件夹in或者out of 系统目录,复制文件到系统目录,赋予或者收回用户权限,系统维护和安装一些应用程序,例如:安装RPM格式的软件通常需要root权限,因为需要写一些信息到系统目录。还有一个需要注意的就是,对于小于1024端口的知名端口,只有root用户才可以有权限侦听,如果应用程序需要侦听小于1024的端口,可以采用临时提权,侦听端口之后,再收回权限的方式进行。如果一直使用root运行应用程序,将会很危险,Linux的sendmail就曾经出现过使用root运行sendmail因为要侦听25端口,结果sendmail程序出问题之后,可以通过这个安全问题控制整台服务器,因为它是用root用户启的。"(https://blog.csdn.net/jimmyleeee/article/details/7886779)

之所以root用户可以在Linux系统上做任何操作,权限没有收到任何限制,是因为在/etc/sudoers文件中,规定了root用户的权限配置为:

/etc/sudoers是sudo的配置文件。

linux查看某个用户有哪些进程: # ps aux

个中缘由我想是初始化mysql数据库前,将mysql目录的所有者变更成了mysql用户: #chown -R mysql:mysql  ./  

 

M4. Linux创建用户

# useradd testuser     添加用户testuser

# passwd testuser    给用户testuser设置密码

# userdel testuser    删除用户testuser

# userdel -r testuser     删除用户testuser,将它留在系统上的文件也删除掉

# usermod -d /home/test -G test2 testuser  将testuser用户的登录目录改成/home/test,并加入test2组,注意这里是大G。

  • -d<登入目录>  指定用户登入时的启始目录。

 

每个用户至少属于一个用户组,每个用户组拥有多个用户,每个用户组共享共同的权限。

# useradd -r -g mysql mysql  创建mysql用户,并指定用户组为mysql 

  • -r  建立系统帐号。
  • -g<群组>  指定用户所属的群组。

原因:

利用adduser创建新用户(adduser +用户名)这样在/home目录下会自动创建同名文件夹(创建用户的家目录),会建立同名组,建立新用户密码,还会从/etc/SKEL目录下拷贝文件到家目录,完成初始化。

正确操作:

远程登录成功,但是存在权限不足问题:

同时新创建的普通用户也不能vim编辑权限规范文件/etc/sudoers,该文件默认是只有root用户才可以修改和访问的

 

 

M5. Linux规范用户权限以及chown、chmod命令的使用

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。

 /etc/sudoers是sudo命令的配置文件,在sudoers文件中可以配置普通用户使用sudo命令的规范。同样,Linux规范用户权限可以通过配置该文件实现。

1. Linux为普通用户添加sudo权限:

① root用户下使用vim编辑/etc/sudoers, 在文件中找到如下一行信息:

② 为指定用户添加sudo权限:

强制修改  :wq!

然后cat查看修改后的文件:

③ 测试用户能否使用sudo命令:

测试成功, 通过sudo命令,用户暂时拥有了root权限。

④ 另外一种方法:

修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy
修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。(https://www.cnblogs.com/blogforly/p/5959210.html)

 

2. Linux的chown命令:  (使用权限 : root )

 概述:

 chown(change owner)将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员可使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。 

  1.命令格式:

    chown [选项]... [所有者][:[组]] 文件...

  2.命令功能:

    通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

  3.命令参数:

  必要参数:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号链接

    -R 处理指定目录以及其子目录下的所有文件

    -v 显示详细的处理信息

    -deference 作用于符号链接的指向,而不是链接文件本身   (https://www.cnblogs.com/fulucky/p/8182459.html)

例子: 安装MySQL时用到:

[root@localhost mysql]# chown -R root:root ./       

root用户可以在Linux系统上做任何操作,权限没有收到任何限制。

一般需要root权限的任务包括:移动文件或者文件夹in或者out of 系统目录,复制文件到系统目录,赋予或者收回用户权限,系统维护和安装一些应用程序。 

 

3. Linux的chmod命令:  (使用权限 : all)

 ① 概述:

 chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。文件或目录的访问权限分为读(r),写(w)和执行(x)三种。

 ② 权限分析示例:

 文件夹mysql:  drwxrwxr-x 2 mysql mysql 4096 Nov 13 22:38 test


看一下[权限]这一列\'drwxrwxr-x\', 一共有10位, 可以分为4段.
    第1位代表文件的类型, \' - \' 代表这是个常规文件, \' d \' 代表这是个文件夹.
    2~4这三位代表user的read/write/execute权限.
    5~7这三位代表group的read/write/execute权限.
    8~10这三位代表others的read/write/execute权限.
如果可读/写/执行, 则用字母r/w/x 表示, 如果不可读/写/ 执行, 则用 - 来表示.

  ③ 命令格式及参数解释:

 # chmod [options] mode files   只能文件(夹)属主或特权用户才能使用该功能来改变文件(夹)权限模式。

 常用示例:

 chmod 751 file     给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

 参数解释:(https://www.cnblogs.com/adolfmc/p/5898115.html)

 

 chown命令使用注意:

 ming用户启动/关闭MySQL, 但安装MySQL数据库时,已经将mysql目录的拥有者设为root用户, 所以操作失败!

① 普通用户将文件拥有者改为其他普通用户

② 普通用户将文件拥有者改为超级用户

root为最高权限用户,若当前用户为普通用户,其权限低于root,所以将文件拥有者改为root时会出现问题。

假如你当前用户为root,将文件权限赋给root或者其他用户,那么将是成功的。

 

M6. 用户密码修改

以上是关于Linux用户管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux用户权限管理命令

Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令

Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令

Linux学习之用户管理命令与用户组管理命令(十五)

linux用户及权限详解-用户组-用户管理-权限管理

Linux用户权限管理