账号和权限管理

目录

一、用户账号和组账号概述

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

1.1.1 用户帐户

1.1.2组帐号

1.1.3 UID和GID

1.2 passwd文件账号记录详细说明

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

技巧记忆chage

二、用户账号和组账号及权限等相关命令总结

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

2.1.1 useradd相关命令(添加指定用户账号)

2.1.2 passwd相关命令

2.1.3 usermod相关命令

举例:修改宿主目录的位置

2.1.4 userdel相关命令

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

2.2.1 groupadd相关命令

2.2.2 gpasswd相关命令

2.2.3 groupdel相关命令

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

2.3.1 用户账号的初始配置文件概述

2.3.2 用户账号的初始配置文件

2.3.3 组账号文件

2.3.4 查看目录和文件的属性

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

2.4.1 groups命令

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

补充:权限掩码umask

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


一、用户账号和组账号概述

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

1.1.1 用户帐户

  • 超级用户(root)、普通用户、程序用户(低权限用户账号)

1.1.2组帐号

  • 基本组(私有组)
  • 附加组(公共组)

1.1.3 UID和GID

  • UID(UserlDentity,用户标识号)
  • GID(Group IDentify,组标识号)

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

管理员组:root, 0

普通组:GID

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

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

1.2 passwd文件账号记录详细说明


详解如下:(cat  /etc/passwd 查看)

admin:用户名

x:表示此用户设有密码

1002:用户账号的 UID 号。

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

root:描述性信息,此字段只是用来解释这个用户的意义而已(这边没有体现出来)

/home/admin:宿主目录,即该用户登录后所在的默认工作目录

/bin/bash:录 Shell 等信息,用户完成登录后使用的

cat /etc/shadow(影子文件)

注意:/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

和 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段

例:

第一列:账户名

第二列:存放真正加密的密码,采用SHA512散列算法,更加安全  加密原来用MD5 或 DES
!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

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

第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
最小修改间隔时间 ,也就是说 该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。

第五列:密码有效期,默认99999(273年),表示永久生效

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

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

比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效


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

第九列:保留,未使用

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

chage [选项] 用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
例:

二、用户账号和组账号及权限等相关命令总结

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

2.1.1 useradd相关命令(添加指定用户账号)

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

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

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

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

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

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

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

例:

创建一个辅助管理员账号 admin1,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin1”

2.1.2 passwd相关命令

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

-l:锁定用户账户

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

-u:解锁用户账户

扩充
#调用管道符,给用户设置密码 "123",为了方便系统管理,passwd 命令提供了 --stdin 选项,用于批量给用户设置初始密码

echo "123" | passwd --stdin root(效果与passwd+密码是一样的,只是前面的一部到位)

2.1.3 usermod相关命令

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

-L:锁定用户账户(centos7 无密码则不能锁定)

-U:解锁用户账户

-u:修改用户的 UID 号

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

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

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

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

-s:指定用户的登录 Shell

-a:表示在原来所属组的基础上追加

举例:修改宿主目录的位置

2.1.4 userdel相关命令

userdel  [-r]  用户名

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

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

2.2.1 groupadd相关命令

groupadd  [-g GID]  组账号名
例:

2.2.2 gpasswd相关命令

-a:添加用户到组(单个)
-d:从组删除用户 
-A:指定管理员
-M:指定组成员和-A的用途差不多(前四个经常用)(多个)
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

2.2.3 groupdel相关命令

groupdel+组账号名(删除组)

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

2.3.1 用户账号的初始配置文件概述

添加一个新的用户账号后,useradd 命令会在该用户的宿主目录中建立一些初始配置文 件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件 包括“.bash_logout”、“.bash_profile”和“.bashrc”。

“.bash_profile”文件中的命令将在该 用户每次登录时被执行;

“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登 录系统)时执行;

“.bash_logout”文件中的命令将在用户每次退出登录时执行。

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

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

2.3.2 用户账号的初始配置文件

  • .bash_profile:示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH),并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)。CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath.
  • .bashrc :例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。

关于环境变量的读取顺序:
用户登录 ->> 加载~/.bash_profile --> bash_profile中配置了首先是使~/.bashrc生效

  • .bash_logout :用途: 用户登出时执行的命令

         # ~/.bash_logout

         # 在当前用户登出时,打印出Logout 和当前的时间
         echo "Logout, `date`" 

例子:
如果需要每个用户登出时都清除输入的命令历史记录

2.3.3 组账号文件

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow

前者用于保存组账号名称、GID 号、组成员等基本信息

后者用于保存组账号的加密密码字串等信息(但是很少使用到)

某一个组账号包含哪些用户成员,将会在 group 文件内最后一个字段中体 现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用“,”(逗号)分隔

如:

2.3.4 查看目录和文件的属性

root 用户、root 组

如“drwxr-xr-x”和“-rw-r--r--”。权限字段由四部分组成,各 自的含义如下所述。  

第 1 个字符:表示该文件的类型,可以是 d(目录)、b(块设备文件)、c(字符设备文 件)、“-”(普通文件)、字母“l”(链接文件)等。

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

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

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

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


字符组合“[ugoa…][+-=][rwx]”或数字组合“nnn”的形式表示要设置的权限模式

“nnn”为需要设置的具体权限值,如“755”“644”等;

“[ugoa…][+-=][rwx]”的形 式中,三个组成部分的含义及用法如下所述:

“ugoa”表示该权限设置所针对的用户类别

“u”代表文件属主

“g”代表文件属组内的用户

“o”代表其他任何用户

“a”代表所有用户(u、g、o 的总和)。 

“+-=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=” 代表仅设置对应的权限。 

“rwx”是权限的字符组合形式,也可以拆分使用,如“r”“rx”等。

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

2.4.1 groups命令

groups[用户名]
groups admin  #查询账户所属组

finger命令   #查询用户账号的详细信息
finger [用户名]


w、who、users #查询已登录到主机的用户信息


通常使用tty来简称各种类型的终端设备,Centos7系统, tty1表 示图形界面,tty2-tty6表示 文字界面,可以用Ctrl+Alt+F1-F6切换。

按Ctr1+A1t+F2登陆, 执行w命令,查看使用的终端就是tty2

User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的
login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行

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

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

例:

[root@localhost ~]# chmod ugo-x mymkdir 
[root@localhost ~]# ls -l mymkdir 
-rw-r--r-- 1 root root 79768 5月  15 00:09 mymkdir

[root@localhost ~]# chmod 755 mymkdir
[root@localhost ~]# ls -l mymkdir
-rwxr-xr-x. 1 root root 79768 Apr 18 09:38 mymkdir


补充:权限掩码umask

[root@kgc ~]# umask 000 
[root@kgc ~]# mkdir /umask1
[root@kgc ~]# ls -ld /umask1/
drwxrwxrwx 2 root root 4096 3 月 13 17:02 /umask1/
[root@kgc ~]# umask 022 
[root@kgc ~]# mkdir /umask2
[root@kgc ~]# ls -ld /umask2/
drwxr-xr-x 2 root root 4096 3 月 13 17:03 /umask2/ 
 

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

如果同时设置目录和文件的属主、属组,则需要用到分隔符“:”

例如,执行以下操作可  将 mymkdir 文件的属主更改为 daemon、属组更改为 wheel。
 
[root@localhost ~]# ls -ld mymkdir
-rwxr-xr-x. 1 root root 79768 Apr 18 09:38 mymkdir
 [root@localhost ~]# chown daemon:wheel mymkdir 
 [root@localhost ~]# ls -ld mymkdir
-rwxr-xr-x. 1 daemon wheel 79768 Apr 18 09:38 mymkdi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值