2017-02-20 10:51:18 StartGala 阅读数 309
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12751 人正在学习 去看看 马永亮

概述

Linux是一个多用户多任务的分时操作系统,任何一个使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统 。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问权限。

另一方面也可以帮助用户组织文件,并为用户提供安全新保护。每个用户账号都有唯一的用户名和各自的指令。

用户在登录时输入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
 
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。

用户

新增用户:useradd  用户名

                    useradd  -g 用户组 用户名

对用户设置密码:passwd 新建用户名,之后根据提示输入密码

用户存在与否:id 用户名

查看当前用户:whoami/who am i

切换用户:su -username(#超级管理员,$普通用户  超级管理员切换到普通用户不需要密码 反之需要)

删除用户:userdel      userdel   用户名     删除用户但保存用户主目录

                                        userdel   -r 用户名 删除用户和用户主目录,都删除

修改用户:usermod    usermod -g 用户组 用户名  将用户加入用户组


用户组

概述

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,
 
如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
 
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。


新增组:groupadd   组名

删除组:groupdel    组名

修改组:groupmod -n 新组名 老组名


与用户账号有关的系统文件

概述

完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,
这些文件包括/etc/passwd, /etc/shadow, /etc/group等。


/etc/passwd:下面是用户(user)的配置文件

从上面的例子我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,
其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow:下面是用户(user)影子口令文件

它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:
 
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
 
"登录名"是与/etc/passwd文件中的登录名相一致的用户账号


2020-01-24 23:24:38 sinat_32366329 阅读数 112
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12751 人正在学习 去看看 马永亮

linux用户管理

添加新用户

用来向Linux系统添加新用户的主要工具是 useradd 。这个命令简单快捷,可以一次性创建新用户账户及设置用户HOME目录结构。 useradd 命令使用系统的默认值以及命令行参数来设置用户账户。系统默认值被设置在/etc/default/useradd文件中。可以使用加入了 -D 选项的 useradd命令查看所用Linux系统中的这些默认值。

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
说明 一些Linux发行版会把Linux用户和组工具放在/usr/sbin目录下,这个目录可能不在 PATH 环境变量里。如果你的Linux系统是这样的话,可以将这个目录添加进 PATH 环境变量,或者用绝对文件路径名来使用这些工具。

在创建新用户时,如果你不在命令行中指定具体的值, useradd 命令就会使用 -D 选项所显示的那些默认值。这个例子列出的默认值如下:

  • 新用户会被添加到GID为 100 的公共组;

  • 新用户的HOME目录将会位于/home/loginname;

  • 新用户账户密码在过期后不会被禁用;

  • 新用户账户未被设置过期日期;

  • 新用户账户将bash shell作为默认shell;

  • 系统会将/etc/skel目录下的内容复制到用户的HOME目录下;

  • 系统为该用户账户在mail目录下创建一个用于接收邮件的文件。

倒数第二个值很有意思。 useradd 命令允许管理员创建一份默认的HOME目录配置,然后把它作为创建新用户HOME目录的模板。这样就能自动在每个新用户的HOME目录里放置默认的系统文件。

使用默认系统参数创建一个新用户账户,然后检查所创建的用户HOME目录。

[root@localhost ~]# useradd -m root1
[root@localhost ~]# ls -al /home/root1/
总用量 20
drwx------. 2 root1 root1 4096 1月  12 23:01 .
drwxr-xr-x. 3 root  root  4096 1月  12 23:01 ..
-rw-r--r--. 1 root1 root1   18 10月 31 2018 .bash_logout
-rw-r--r--. 1 root1 root1  193 10月 31 2018 .bash_profile
-rw-r--r--. 1 root1 root1  231 10月 31 2018 .bashrc

默认情况下, useradd 命令不会创建HOME目录,但是 -m 命令行选项会使其创建HOME目录。你能在此例中看到, useradd 命令创建了新HOME目录,并将/etc/skel目录中的文件复制了过来。记得及时使用man useradd 或者 info useradd命令查看操作。

删除用户

如果你想从系统中删除用户, userdel 可以满足这个需求。默认情况下, userdel 命令会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。

如果加上 -r 参数, userdel 会删除用户的HOME目录以及邮件目录。然而,系统上仍可能存有已删除用户的其他文件。这在有些环境中会造成问题。

[root@localhost ~]# userdel -r root1(用户名称)

警告 在有大量用户的环境中使用 -r 参数时要特别小心。你永远不知道用户是否在其HOME目录下存放了其他用户或其他程序要使用的重要文件。记住,在删除用户的HOME目录之前一定要检查清楚!

修改用户

Linux提供了一些不同的工具来修改已有用户账户的信息。

命令 描述
usermod 修改用户账户的字段,还可以指定主要组以及附加组的所属关系
passwd 修改已有用户的密码
chpasswd 从文件中读取登录名密码对,并更新密码
chage 修改密码的过期日期
chfn 修改用户账户的备注信息
chsh 修改用户账户的默认登录shell
usermod

usermod 命令是用户账户修改工具中最强大的一个。它能用来修改/etc/passwd文件中的大部分字段,只需用与想修改的字段对应的命令行参数就可以了。参数大部分跟 useradd 命令的参数一样(比如, -c 修改备注字段, -e 修改过期日期, -g 修改默认的登录组)。除此之外,还有另外一些可能派上用场的选项。

  • -l 修改用户账户的登录名。

  • -L 锁定账户,使用户无法登录。

  • -p 修改账户的密码。

  • -U 解除锁定,使用户能够登录。

-L 选项尤其实用。它可以将账户锁定,使用户无法登录,同时无需删除账户和用户的数据。

要让账户恢复正常,只要用 -U 选项就行了。

passwd 和 chpasswd

改变用户密码的一个简便方法就是用 passwd 命令。

如果只用 passwd 命令,它会改你自己的密码。系统上的任何用户都能改自己的密码,但只有root用户才有权限改别人的密码。

-e 选项能强制用户下次登录时修改密码。你可以先给用户设置一个简单的密码,之后再强制在下次登录时改成他们能记住的更复杂的密码。

如果需要为系统中的大量用户修改密码, chpasswd 命令可以事半功倍。 chpasswd 命令能从标准输入自动读取登录名和密码对(由冒号分割)列表,给密码加密,然后为用户账户设置。你也可以用重定向命令来将含有 userid:passwd 对的文件重定向给该命令。

chsh 、 chfn 和 chage

chsh 、 chfn 和 chage 工具专门用来修改特定的账户信息。 chsh 命令用来快速修改默认的用户登录shell。使用时必须用shell的全路径名作为参数,不能只用shell名。

chfn 命令提供了在/etc/passwd文件的备注字段中存储信息的标准方法。 chfn 命令会将用于Unix的 finger 命令的信息存进备注字段,而不是简单地存入一些随机文本(比如名字或昵称之类的),或是将备注字段留空。 finger 命令可以非常方便地查看Linux系统上的用户信息。

[root@localhost ~]# finger rich
Login: rich Name: Rich Blum
Directory: /home/rich Shell: /bin/bash
On since Thu Sep 20 18:03 (EDT) on pts/0 from 192.168.1.2
No mail.
No Plan.
说明 出于安全性考虑,很多Linux系统管理员会在系统上禁用 finger 命令,不少Linux发行版甚至都没有默认安装该命令。
2017-11-19 23:40:52 wangyonglin1123 阅读数 15078
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12751 人正在学习 去看看 马永亮

最近在学linux命令,学到了用户和用户组。
如何知道当前登录用户是否具有root权限

有以下两种方法

  1. 第一种方法看符合
    #表示是具有root权限的用户
    KaTeX parse error: Expected 'EOF', got '#' at position 33: …我们看到root这个用户后面是#̲号说明是root权限的用户,而…说明是普通用户]
    在这里插入图片描述
    我们看到root这个用户后面是#号说明是root权限的用户,而wangyl这个用户后面跟的是$说明是普通用户
  2. 具有root权限的uid gid group 都是0,普通用户并不是具有rott权限的uid gid group 都是0,普通用户并不是
    一般就这两种方法,其他的评论有回答说
    使用whoami命令
    这个命令只能显示当前用户,并不能说明是否具有root权限哦
    有问题联系微信yonglinw1234567

感觉linux无比强大

2015-09-28 19:19:31 Sir_fish 阅读数 402
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12751 人正在学习 去看看 马永亮

Linux系统中,linux用户和用户组就像一个国家。如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成。在linux中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的。


Linux用户和用户组管理之用户配置文件


1.1Linux用户和用户组管理用户信息文件

1.1.1 用户管理简介

越是对服务器安全性要求高的服务器,越需建立合理的用户权限等级制度和服务器操作规范

在Linux中主要是通过用户配置文件来查看和修改用户信息



1.1.2 /etc/passwd

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下用户帐号文件。

Linux用户管理

Linux用户和用户组

 

每行一共有七项,每一项使用:分开,他们代表的意思如下:

第1字段:用户名称

第2字段:密码标志

第3字段:UID(用户ID)

0:                超级用户

1-499:         系统用户(伪用户)

500-65535      普通用户

第4字段:GID(用户初始组ID)

第5字段:用户说明

第6字段:用户家目录

普通用户:/home/用户名/

超级用户:/root/

第7字段:登陆之后的shell

 


1.1.3  初始组和附加组

初始组:就是指用户一登陆就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。

附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以用多个。

 


1.1.4  shell是什么

shell就是Linux的命令解析器

在 /etc/passwd中,除了标准shell是/bin/bash之外,还可以写成如/sbin/nologin/

 

1.2影子文件

1.2.1 /etc/shadow

在早期的unix操作系统中,用户的帐号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件对于系统中的所有用户是可读的,口令比较容易破解,存在较大的安全隐患。现在使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户帐号其它信息。“shadow”文件只有管理员用户才可以读取其中的内容。由于这个文件可能被破解,所以一定不要将该文件内容泄露给他人,保证系统安全。

Linux用户组管理

每行一共有九项,每一项使用:分开,他们代表的意思如下:

第1字段:用户名

第2字段:加密密码

如果是!!或*代表没有密码,不能登陆

第3字段:密码最后一次修改时间

使用1970.1.1作为标准时间,每过一天时间戳加1

第4字段:两次密码的修改间隔时间(和第3字段相比)

第5字段:密码有效期(和第3字段相比)

第6字段:密码修改到期前的警告天数(和第5字段相比)

第7字段:密码过期后的宽限天数(和第5字段相比)

0代表密码过期后立即失效

-1则代表密码永远不会失效

第8字段:账号失效时间

第9字段:保留

 


1.2.2 时间戳换算

把时间戳换算为日期

date -d “1970-01-01 16066 days”

把日期换算为时间戳

echo $(($(date –date=”2014/01/06″ + %s)/86400+1))

 

1.3组信息文件

1.3.1 /etc/group

Linux用户和用户组

 

每行一共有四项,每一项使用:分开,他们代表的意思如下:

第1字段:组名

第2字段:组密码标志

第3字段:GID

第4字段:组中附加用户

 


1.3.2  组密码文件/etc/gshadow

同样也是每行一共有四项,每一项使用:分开,他们代表的意思如下:

第1字段:组名

第2字段:组密码

第3字段:组管理员用户名

第4字段:组中附加用户

 

Linux用户和用户组管理之用户管理相关文件

1.用户家目录

1.1、普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700

1.2、超级用户:/root/,所有者和所属组都是root用户,权限是550

 

2.用户邮箱

/var/spool/mail/用户名/

 

3.用户模版

/etc/skel/

 

Linux用户和用户组管理用户管理命令

1.useradd 命令格式


1.1  useradd [选项] 用户名

选项:

-u UID:手工指定用户的UID号

-d 家目录:手工指定用户的家目录

-c 用户说明:手工指定用户说明

-g 组名:手工指定用户的初始组

-G 组名:手工指定用户的附加组

-s Shell :手工指定用户的登录shell。默认是/bin/bash

 


1.2.  用户默认值文件

/etc/default/useradd

GROUP=100                       用户默认组

HOME=/home                     用户家目录

INACTIVE=-1                     密码过期宽限天数(shadow文件7字段)

EXPIRE=                            密码失效时间(shadow文件8字段)

SHELL=/bin/bash/                默认shell

SKEL=/etc/skel/                   模板目录

CREATE_MAIL_SPOOL=yes      是否建立邮箱

Linux用户和用户组

 

/etc/login.defs

PASS_MAX_DAYS             99999     密码有效期(shadow文件5字段)

PASS_MIN_DAYS                     0            密码修改间隔(shadow文件4字段)

PASS_MIN_LEN                 5            密码最小5位(PAM)

PASS_WARN_AGE             7            密码到期警告(shadow文件6字段)

UID_MIN                           500         最小和最大UID范围

GID_MAX                          600

ENCRYPT_MEHTOD        SHA512  加密模式

Linux用户和用户组

Linux用户和用户组

 

2.修改用户密码


2.1   passwd [选项] 用户名

-S           查询用户密码的密码状态。仅root用户可用

-l            暂时锁定用户。仅root用户可用

-u           解锁用户。仅root用户可用

–stdin  可以通过管道符输出的数据作为用户的密码

 

3.修改用户信息usermod,修改用户密码状态chage

3.1  usermod

选项同 useradd,区别是usermod是修改用户信息

-L 锁定用户

-U 解锁用户

 


3.2  chage 修改用户密码状态

chage [选项] 用户名

选项

-l                   列出用户的详细密码状态

-d 日期         修改密码最后一次更改日期(shadow 3字段)

-m 天数        两次密码修改间隔 (4字段)

-M 天数        密码有效期(5字段)

-W 天数        密码过期前警告天数(6字段)

-I     天数       密码过期后宽限天数(7字段)

-E    日期       账号失效时间(8字段)

chage -d 0 user1

#这个命令其实是把密码修改日期归0了(shadow第3字段)

#这样用户一登陆就要修改密码

 


4.Linux用户和用户组管理删除用户

4.1

userdel [-r] 用户名

-r 删除用户的同时删除用户家目录

 

查看用户id

id [用户名]

 

切换用户su

su [选项] 用户名

- 选项只使用“-”代表连带用户的环境变量一起切换

-c命令:仅执行一次命令,而不切换用户身份

su – root -c “useradd user1″

#不切换成root,但是执行useradd命名添加user1用户

 

5.Linux用户和用户组管理用户组管理命令

5.1 新增组

groupadd [选项] 组名

-g GID 指定组ID

 


5.2 修改组

groupmod [选项] 组名

 


-g GID          修改组ID

-n 新组名      修改组名

groupmod -n 新组名 旧组名

 


5.3删除组

groupdel 组名

 


5.4把用户添加入组或从组中删除

gpasswd 选项 组名

选择

-a 用户名      把用户加入组

-d 用户名      把用户从组中删除

本文Linux环境为CentOS 6。

2017-04-30 00:30:16 a60782885 阅读数 248
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12751 人正在学习 去看看 马永亮

Linux不同于windows,windows可以说基本是个人用户,而对于Linux确不是这样的。Linux是多用户多任务的分时系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。多用户的设定让用户管理变得十分重要。


linux下用户的角色分类
在linux下用户是根据角色定义的,具体分为三种角色:
1. 超级用户:拥有对系统的最高管理权限,默认是root用户。
2. 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上面提到的www用户、ftp用户等。
3. 虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的。


什么是用户?

Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。

什么是用户组?

用户组是具有相同特征用户的逻辑集合。

有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。


用户组的信息存放在/etc/group中:

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
...
这里是什么意思呢?

root  :     x         :    0   :
组名  : 组密码占位符  : 组编号 : 组中用户列表
如果组中用户列表只有一个,且用户名与组名一致,那么就省略。

可以看出来,用户组也是需要密码的。

其中root组编号为0。

1~499为系统预留组编号,预留给安装的软件和服务所使用。

500~NAN给手动创建的用户所使用。


这里的组密码是用占位符的形式出现的,那么真正的密码保存在哪里呢?

在/etc/gshadow中。

[root@localhost ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
cdrom:::
mail:::postfix
...
这里又是什么意思呢?

root  :             :           :
组名  : 组实际密码  :  组管理者 : 组中用户名

其中,如果组实际密码为空,*,!都为空。


用户组的信息我们知道了,那么用户的信息在哪里呢?

用户信息存放在/etc/passwd中。

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
这个是什么意思呢?

root  :     x       :      0    :     0       :   root       :  /root     : /bin/bash
用户名:  密码占位符 : 用户编号  : 用户组编号  : 用户注释信息 : 用户主目录 : shell类型
同样的,用户的密码也是存放在别的文件当中。存放在/etc/shadow中。

[root@localhost ~]# cat /etc/shadow
root:$6$oXDo/YYptGcAyHLr$Rh.kWkyEUmvwnR8SQbcpGRUZG/tnhF00YYoFISqxVdwYXEyn650Ghcz8rzvn//oZSru9qAk2nfChFG5E0gROC0::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
adm:*:16659:0:99999:7:::
lp:*:16659:0:99999:7:::
sync:*:16659:0:99999:7:::
shutdown:*:16659:0:99999:7:::
halt:*:16659:0:99999:7:::
mail:*:16659:0:99999:7:::
operator:*:16659:0:99999:7:::
games:*:16659:0:99999:7:::
ftp:*:16659:0:99999:7:::
nobody:*:16659:0:99999:7:::
avahi-autoipd:!!:17281::::::
systemd-bus-proxy:!!:17281::::::
systemd-network:!!:17281::::::
...
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
可以看到,实际的密码在这里是看不到,这里采用了单向加密。


为什么要分成两个文件呢?直接把加密的密码放在/etc/passwd中不行吗?

确实是可以的,但是分开两个文件是为了安全。因为需要访问密码需要很高的权限,而用户的信息确实总是需要访问的,所以分开两个文件。

[root@localhost ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1382 Apr 25 11:19 /etc/passwd
[root@localhost ~]# ll /etc/shadow
----------. 1 root root 907 Apr 25 11:19 /etc/shadow



我们现在知道用户和用户组的信息存储方式了,但是用户和用户组的基本操作呢?

基本操作

用户组

增加用户组

groupadd 组名
修改用户组

groupmod
选项-n改名,-g修改编号等。

删除用户组

groupdel  组名


用户
增加用户

usedadd
选项-g指定组,-d指定家目录。如果不指定,则默认创建一个和用户同名的用户组,并设置为其用户组。家目录为/home/名字

修改用户

usermod
选项-c修改注释,-l修改用户名

删除用户

userdel


如果希望暂时不让普通用户登陆服务器,可以创建/etc/nologin文件,就可以禁止普通用户登陆。进行服务器的升级修改维护等等。


锁定用户:(禁止这个用户登录)

passwd -l 用户名
解锁用户:

passwd -u


如果一个用户在多个用户组中,怎么分配呢?

一个用户只能有一个主要组,可以为它分配其他的附属组,附属组可以分配多个。

添加附属组:

gpasswd -a 用户名 用户组
删除附属组:

gpasswd -d 用户名 用户组


如果出现重新分配,那么如何切换用户组呢?

newgrp 用户组
将当前用户切换进入这个用户组。

进入用户组需要用户组密码。


如何切换用户:

su 用户名
需要用户密码

查看你当前用户:

whoami
查看用户信息:

id 用户名
查看当前用户所属组:

groups
设置用户资料:

chfn
这个命令采用交互模式,简单的交互即可设置用户资料。

查看用户详细信息:

finger
这个命令默认是没有安装的,需要自己安装。

linux 用户组和用户

阅读数 223

linux修改用户

阅读数 170

没有更多推荐了,返回首页