Linux账号和权限管理

目录

用户账号和组账号概述

2、/etc/passwd文件账号记录详细说明

3、用户账号文件 /etc/shadow (影子)

chage命令:

小结

添加用户账号

设置/更改用户口令passwd

修改用户账户是属性 userrmod

用户账号的初始配置文件

删除用户账号userdel

组账号文件

添加组账号groupadd

添加删除组成员gpasswd命令

删除组账号groupdel

查询组信息 groups

查询账号信息finger (需要yum安装)

文件/目录的权限和归属

设置文件和目录的权限chmod

设置文件和目录的归属chownl

权限掩码umask

总结


用户账号和组账号概述

Linux基于用户身份对资源访问进行控

        用户账号,(生产环境不可能用root)

        超级用户(root)、普通用户、程序用户

组账号

        基本组(私有组)

        附加组(公共组)

UID和GID

        UID(User IDentity,用户标识号)

        GID(Group IDentify,组标识号)

超级用户:root 用户是 Linux操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于 windows操作系统中的Administrator 用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。root拥有对系统的最高的管理权限ID=0

普通用户:普通用户账号需要由 root用户或其他管理员用户创建,拥有的权限到一定限制,一般只在用户自己的宿主目录中拥有完整权限,系统用户UID:1-999 (centos7 版本)1-499 (centos6版本)UID:即每个用户的身份标示,类似于每个人的身份证号码.

程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail等伪用户一般不会用来登录系统的,它主要是用于维持某个服务的正常运行.如: ftp,apache

UID:即每个用户的身份标示, 类似于每个人的身份证号码.

管理员组: root,0

通组:GID

系统组:1-499 ( centos6) , 1-999 ( CENTOS7 )

普通组: 500+ ( centos6) , 1000+ (CENTOS7 )

表示该账户需要密码才能登录,为空时,账户无须密码即可登录组账号

基本组:基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组) ;

附加组:若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

简说:

用户和组的关系

用户 是员工 组 是职位

员工 可以兼职多个岗位

总有一个最重要的身份 主要组合附加组

主要组 必须要一个组 有且唯一

附加组 可有可无 有可以有多个

默认行为当你创建一个新用户时会自动创建一个和之同名的主组

2、/etc/passwd文件账号记录详细说明

root:0:0:root:/root:/bin/bash

root:用户名用户名方便用户记忆。Linux系统是通过UID识别用户身份,分配用户权限。

x 表示此用户设有密码但不是真正的密码,Linux系统加密密码保存在 /etc/shadow文件,只有root用户可以浏览和操作,最大限度地保证了密码的安全

0 :用户账号的 UID

0 :所属基本组账号的 GID 号

root(用户说明)

/root(宿主目录),即该用户登录后所在的默认工作目录bash录 shell d

注:通常称为用户的主(家)目录。例如root主目录为/root,普通用户odysee的主目录为/home/odysee

/bin/bash录 shell 等信息,用户完成登录后使用

3、用户账号文件 /etc/shadow (影子)

保存用户的密码、账号有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

/etc/shadow (影子文件)

/etc/shadow 文件只有root

用户拥有读权限,其他用户没有任何权限,这样保证了用户密码的安全性

 和 /etc/passwd 文件一样,文件中每一行代表一个用户,同样使用 “:”

作为分隔符。不同之处在于,每行用户信息被划分为 9 个字段

第一列:账户名

第二列:存放真正加密的密码,采用SHA512散列算法,更加安全  加密原来用MD5 或 DES

!!和* 表示没有密码不能登入,新创建用户也是!! 如果密码前是显示双感叹号 表示该账户被锁定了

第三列:上一次修改密码的时间,从1970年1月1日开始计算的,因为是Linux的诞生日,date -d “1970-01-01 18983 days”可以查看哪一改过

第四列:多久之后才可以修改密码,如果是0,则密码可以随时修改

:最小修改间隔时间,该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是10,代表密码修改之后的10天之内不可以修改,针对频繁更改账号密码的人而设定的

第五例:密码有效期,默认99999,表示永久生效

第六列:密码到期前的第几天发送警告信息,默认7天,每次登录系统都会向该账户发出

“修改密码”的警告信息

第七列:密码过期的宽限天数,过期后的几天还是可以登入的,如果过来宽限天数,系统将不再让此账户登入,也没有提示,完全禁用。

第八列:账号失效时间,使用自 1970年1月1日 以来的总天数作为账户的失效时间

第九列:保留,未使用

chage命令:

用来修改帐号和密码的有效期限,针对目前系统已经存在的用户

chage [选项] 用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。chage -M 60 root

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

例: chage -E 2019-04-29 test

其中,test为用户,用户将在2019年4月29日失效(不可登录)

chage -d 2019-06-30 test

设置test 用户最后一次修改密码的日期为2019年6月30日

chage -d 0 test

则代表该test用户需立即修改密码

date -d "+45 days" -ul   如果不知道时间可以用date查看

-u :UTC时间

如:[root@localhost ~]#chage -lroot

小结

第三个字段为:密码最后一次修改的时间 ( chage -d)

第四个字段为:密码最小修改间隔时间 ( chage -m)

第五个字段为:密码的有效期 ( chage -M)

第六个字段为:密码需要变更前的警告天数 ( chage -w)

第七个字段为:密码过期后的宽限天数 ( chage -I)

第八个字段为:账号失效时间 ( chage -E)

添加用户账号

useradd   选项  用户名

常用选项

-u -d -e -g -G -M -s  

useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike

-u:指定用户的UID号,要求该UID号码未被其他用户使用。

-d:指定用户的宿主目录位置(当与-M一起使用时,不生效)

-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。

-g:指定用户的基本组名(或使用GID 号) 。

-G:指定用户的附加组名(或使用GID号)。

-M:不建立宿主目录,即 (vim /etc/login.defs)系统配置中已设定要建立宿主目录。

-s:指定用户的登录shell。

useradd dc

id dc

tail -l /etc/passwd  查看用户

tail -l /etc/shadow  

ls / home

创建一个辅助管理员账号

admin,将其基本组指定为"wheel",附加组指定为"root",宿主目录指定为"/admin"useradd -d / admin -g wheel -G root admin

id admin

设置/更改用户口令passwd

passwd 选项 用户名

常用选项

-d :清空指定用户的密码,仅使用用户名即可登录系统

-l :锁定用户账号

-S :查看用户账户的状态(是否被锁定)

-u:解锁用户账户

passwd 

#调用管道符,给 zhang 用户设置密码 “123456”,为了方便系统管理,passwdm命令提供了 --stdin选项,用于批量给用户设置初始密码

[root@ky17 zxc]# su - limy

[root@ky17 zxc]# echo "123456" |passwd --stdin zhang用户名
   (用于批量创建密码)

更改用户 zhang 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@ky17 zxc]#

修改用户账户是属性 userrmod

userrmod 选项 用户名

参数

-l:更改用户账号的登录名称(Login Name )

-L:锁定用户账户。

-U:解锁用户账户

-u:修改用户的UID号。

-d:修改用户的宿主目录位置。

-e:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式。

-g:修改用户的基本组名(或使用GID号)。

-G:修改用户的附加组名(或使用GID号)。

-s:指定用户的登录shell。

用户账号的初始配置文件

文件来源

新建用户账号时,从 /etc/skel 目录中复制而来

主要的用户初始配置文件

~/.bash_profile

~/.bashrc

~/.bash_logout

添加一个新的用户账号后,useradd 命令会在该用户的宿主目录中建立一些初始配置文件。

这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件包括" .bash logout”、".bash profile”和" .bashrc”。

其中".bash_profile"文件中的命令将在该用户每次登录时被执行:".bashrc"文件中的命令会在每次加载"/bin/Bash"程序(当然也包括登录系统)时执行﹔

而".bash_logout"文件中的命令将在用户每次退出登录时执行。理解这些文件的作用,可以方便我们安排一些自动运行的后台管理任务。

在".bashrc"等文件中,可以添加用户自己设置的可执行语句(如Linux命令

行、脚本控制语句等),以便自动完成相应的任务。

理解这些文件的作用,可以方便我们安排一些自动运行的后台管理任务。

在".bashrc"等文件中,可以添加用户自己设置的可执行语句(如 Linux命令行、脚本控制语句等》·以便自动完成柑应的任务。

如果希望为所有用户添加登录后自动运行的命令程序、自动设置变量等,可以直接修改/etc目录下的类似文件,如/etc/bashrc文件、/etc/profile文件。例姐,执行以下操作可以为所有用户白动设置nyls 命令别名

vim /etc/profile (全局)、

vim /etc/bashrc(开机启动) alias myls=’/bin/ls -lhr’

source /etc/bashrc  刷新/etc下面的/bashrc

myls→su -dc→myls

vim .bash|_logout 开机环境变量  i 插入 o 下一行

删除用户账号userdel

userdel命令

userdel [-r]  用户名

添加-r选项时,表示连用户的宿主目录一并删除

[root@localhost ~]# useradd dc

[root@localhost ~]# Is -ld /home/dc

drwx------ 2 dc dc 4096 09-0912:38 /home/dc

[root@localhost ~]# userdel -r dc

[root@localhost ~]# Is -ld /home/dc

ls: /home/dc/:没有那个文件或目录

如果没有加 -r 则恭喜,中奖,只删除了一个账号

因为没有递归所以信息文件、子目录还在

解决办法

1、删除vim /etc/passwd 、 vim /etc/shadow文件里面的内容

在vi编辑器里面删需要删掉的用户信息(dc)

2、删除vim /etc/group 、vim /etc/gshadow

进入到vi编辑器里面去删除需要删掉的用户信息dc

3、删除cd /home/dc 、vim /varlspool/mail/dc

rm -rf /home/username  

一次性解决办法:userdel -rf dc 或者 userdel -fr dc 多试几次看运气。

组账号文件

与用户账号文件相类似

/etc/group:保存组账号基本信息

/etc/gshadow:保存组账号的密码信息

如  grep "adm" /etc/group

sys:x:3:root,bin,adm

adm:x:4:root,adm,daemon

adm:x:4组帐号名daemon组成员列表

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称、GII号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少使用到)。某一个组账号包含哪些用户成员,将会在 group 文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用",”(逗号)分隔

grep "^root" /etc/group //检索root组包括哪些用户

grep "root" letc/groupl //检索哪些组包括root用户

添加组账号groupadd

groupadd命令

groupadd  [-g GID]   组账号名

groupadd -g 1200 market

tail -1 / etc/ group

添加删除组成员gpasswd命令

gpasswd 选项 组账号

-a:添加一个用户到组

-d:从组删除用户

-A:指定管理员

-M:添加多个组成员,以“,”逗号分割(会覆盖 -a 的成员)

-r:的用途差不多-r:删除密码

-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

示例:

useradd mike

gpasswd -a mike root#确认mike 用户已加入root组

groups mike

gpasswd -d webmaster root #//确认webmaster 用户已退出 root 组正在将用户

"webmaster"”从"root"组中删除

gpasswd -M root, daemon, webmaster , mike adm

grep "^adm" /etc/group

adm : x: 4 : root, daemon , webmaster , mike

groupdel命令

groupdel组账号名groupdel market

grep "market" / etc/ group

删除组账号groupdel

groupdel 组账号名

示例

groupdel market

groupdel “market”/etc/group

查询组信息 groups

groups 用户名  查询用户所属的组

id 用户名  查询用户身份标识

查询账号信息finger (需要yum安装)

finger [用户名]  查询用户帐号的详细信息

w、 who、users 命令   查询已登录到主机的用户信息(远程终端shell)

User:登录用户名

TTY:登录后系统分配的终端号From:远程主机名,即从哪登录的login@:何时登录

IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。

JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间

PCPU:当前进程所占用时间

WHAT:当前正在运行进程的命令行

Pts:说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证

明登录的越早

文件/目录的权限和归属

访问权限

读取r:允许查看文件内容、显示目录列表

写入w:允许修改文件内容,允许在目录中新建、移动、

删除文件或子目录

可执行x:允许运行程序、切换目录

归属(所有权)

属主:拥有该文件或目录的用户帐号 (用户)

属组:拥有该文件或目录的组帐号 (小组)

[root@localhost ~]# ls -l install.log

-rw-r--r--  1 root  root  34298  04-0  200:23  install.log

-rw-r--r--

r、w、x (数字表示4、2、1)  分别代表,可读,可写,可执行, 三个为一组

- 为 0  = 没有  

 第一个字符,通常是以文件类型表示(d目录,b块设备文件,-普通文件,l链接文件,c字符设备文件等)

rw- r-- r--

420 400 400

=644 权限顺序就是644  最高777

第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限。

第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。

第8~10个字符:表示其他任何用户(other)对该文件的访问权限。

第11个字符:这里的”.”与 SELinux有关,目前不必关注.

设置文件和目录的权限chmod

chmod ugoa  [+.=]  [rwx]  文件或者目录

u、g、o、a分别表示

属主(用户)、属组(团队)、其他用户(成员)、所有用户

+、-、= 分别表示增加、去除、设置权限

rwx  读  写  执行

chmod nnn  文件或者目录   nnn代表3位8进制数(rwx 666)

常用选项

-R:递归修改指定目录下所有子项的权限

设置文件和目录的归属chownl

chown命令

chown_属主文件或目录

chown :属组文件或目录

chown属主:属组文件或目录

常用选项  一定不能忘了加参数,选项

-R:递归修改指定目录下所有文件、子目录的归属

权限掩码umask

umask作用

控制新建的文件或者目录的权限

默认权限去除umask的权限为新建的文件或者目录的权限

umask设置: umask 022

lumask查看: umask

示例

将umask设为000,新建目录或者文件,查看权限  (就是啥都没减少)

将umask设为022,新建目录或者文件,再查看权限 

(比如之前的权限是666 减去 022 = 644)

666 的意思是,不是执行件 都可以用。

总结

用户账号管理(useradd、passwd、usermod、userdel

组账号管理(groupadd、gpasswd、groupdel)

用户账号文件与组账号文件

查询账号相关信息的命令(groups、 id、finger、w、who、users)

设置目录与文件权限(chmod)

设置目录与文件归属(chown)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值