linux账号和权限管理

目录

一.管理用户账户和组账号

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

1.1、用户账号

1.2、组账号

1.3、UID和GID

1.4超级用户

1.5、组账号

1.6、基本组与附加组

1.7、用户ID表示详解

1.8、etc/shadow  (影子文件)

二、账号管理命令的使用

1、chage命令

2、useradd

3、设置/更改用户口令——passwd

3.2、用管道符设置密码:

4、usermod 选项 用户

4.2、修改shell登陆

5、用户账号的初始配置

6、删除历史记录(保护密码)

三、管理组账号

1.1、 组账号概述

1.2、 组账号文件命令

1.3 、四个字段

1.4 添加组账号—groupadd命令

2、 添加、设置、删除组成员——gpasswd

3、设置文件和目录权限——chmod

 4、umask应用


一.管理用户账户和组账号

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

1.1、用户账号

超级用户、普通用户、程序用户

1.2、组账号

基本组(私有组)

附加组(公共组)

1.3、UID和GID

UID(User IDentity,用户标识号)

GID (Group IDentify,组标识号)

1.4超级用户

root用户是Linux操作系统中默认的超级用户账号,对本主机拥有之高无上的权限

root拥有对系统的最高的管理权限 ID=0

普通用户:普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制

系统用户UID:1-999(centos7版本) 1-499(centos6版本)

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

程序用户:在安装linux操作系统及部分应用系统时,会添加一些特定的低权限用户账户,这些用户一般不允许登陆到系统,而仅用于维持系统或某个程序的正常运行

UID:

管理员组:root,,0

普通组:GID

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

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

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

1.5、组账号

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

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

组的分类:

1.6、基本组与附加组

当一些用户需要做同一间事情的时候,把他们加到同一个族中便于管理

1.基本组,一般新建用户的时候会岁用户自动创建,与用户同名

2.附加组,一般一个用户可以有0个或对各附加组

注:一个用户只有一个基本组,可以有多个附加组

1.7、用户ID表示详解

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

x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件(虽然x并不表示真正的密码,但也不能删除,如果删除了x,那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆<只能在使用无密码登陆,远程是不可以>)

0:用户账号的UID号

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

root:描述性信息,此字段知识用来解释这个用户的意义而已

/root:宿主目录,即该用户登陆后所在的默认工作目录(通常称为用户的主(家)目录)

1.8、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,表示永久生效

第六列:密码到期前的地几点发出告警消息,默认是7天,每次登陆系统都会向该账户发出“修改密码”的警告消息

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

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

第九列:保留,未使用

二、账号管理命令的使用

1、chage命令

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

chage  [选项] 用户名

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

-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" -u 
###如果不知道时间可以用date查看 -u: UTC时间


2、useradd

添加用户账号

用法:useradd 用户名

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

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

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

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

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

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

useadd -u 指定用户的UID号,要求未被使用

*useadd -d** 指定用户宿主目录位置

useradd -e 指定用户的失效时间

useradd -g/-G 指定用户的基本组名/附加组名(指定属组必须存在)

useradd -M 不建立属组目录
useradd zhangsan
id zhangsan

tail -1 /etc/passwd
tail -1 /etc/ shadow

3、设置/更改用户口令——passwd

/etc/passwd :保存用户名称、宿主目录、登录shell等基本信息

/etc/shadow :保存用户的账号、密码等有效信息

每一行对应一个用户的账号记录

root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账

的密码。

普通用户却只能执行单独的"passwd"命令修改自己的密码。

-d    清空指定用户的密码,仅使用用户名即可登录系统
-l    锁定用户账户,锁定的用户账号将无法再登录系统
-S    查看用户账户的状态(是否被锁定)
-u    解锁用户账户

3.2、用管道符设置密码:

echo “密码” | passwd  --stdin 用户名

4、修改用户账号属性——usermod

usermod 选项 用户

-u    修改用户的UID号

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

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

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

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

-s    指定用户的登录shell (/sbin/nologin 和/sbin/false未禁止用户登录系统)
以上和useradd相同

-l(小写的L)    更改用户账号的登录名称

-L    锁定用户账户

-u(passws)    解锁用户账户

修改账户基本组(-g)和附加组(-G)

wheel 比root权限小 比用户权限大

举例:usemod -g ky19 -G kaif liufeng

修改liufeng基本组为ky19 附加组为kaif/

修改shell登陆

5、用户账号的初始配置

新建用户帐号时,从 /etc/skel 目录中复制而来,基本上都是隐藏文件比如默认bin/bash,默认家目录

.bash_profile    这个文件是为系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile 命令使profile文件被读取

修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效

.bashrc    这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本

.bash_logout    每一个允许bash shell 的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取

修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效

6、删除历史记录(保护密码)

huistory -c    清除历史记录

history -r /root/history.txt    把命令度进来当做bash历史记录

history -w /root/history.txt    把当前bash的历史记录写入history.txt

echo “history -c”>> ~/.bash_logout    

echo “history -c”>> ~/.bash_profile    

三、管理组账号

1、 添加组账号 groupadd

groupadd   -g 1200 market

tail -1 /etc/group

2、 组账号文件命令

文件名    

/etc/group    保存组帐号基本信息

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

3、四个字段

字段1    组帐号的名称

字段2    占位符"x"

字段3    组账号的GID号

字段4    组账号包含的用户成员(一般不包括基本组对应的用户帐号) ,多个成员之间以逗号","分隔

4、 添加、设置、删除组成员——gpasswd

示例:gpasswd  组账号名           添加某某账号

-a    向组内添加一个用户

-d    从组内删除一个用户成员

M    定义组成员列表,以逗号分隔

删除组账号—groupdel

示例:groupdel 组账号名          删除某某账号

groupdelb market   ###删除组账号market

grep "market" /etc/group



查询用户账号所属组——groups

示例:groups  组账号名          查看某某组

查询当前主机的用户登陆情况——w/who/lastlog -u

 查询用户账号身份标识——id

id   用户     查看用户ID

5.查询账号信息 finger

finger 命令:

查询用户账号的详细信息

finger [用户名]

6、查询账号信息w、who、users

w、who、users命令

查询已登录到主机的用户信息

通常使用tty来简称各种类型的终端设备,centos7系统 tty1表示图形界面,

tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6 切换

按Ctrl+Alt+F2登录 , 执行w命令 ,查看使用的终端就是 tty2

user:登录用户名

TTY:登录后系统分配的终端号

From:远程主机名,即从那里登录的

login@:何时登录

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

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

PCPU:当前进程所占用时间

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

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

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

1、用户账号的初始配置文件

1.1、文件来源

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

1.2、主要的用户初始配置文件

.bash_profile: 示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH)并修改了

有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)CLASSPATH环境变量的值是

在JAVA运行时查找加载类的默认classpath

.bashrc: 例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确

认,使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)

每次修改.bashrc 后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的位置,使

之生效

一般会在.bashrc_profile 文件中显示调用.bashrc 登录Linux启动bash时会先去读取~/.bash_profile

文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了

关于环境变量的读取顺序:

用户登录->>加载~/.bash_profile–>bash_profile中配置了首先使 ~/.bashrc生效

1.3、.bash_logout

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

#~/.bash_logout

#在当前用户登出时,打印出logout 和当前的时间

echo “logout,data”

例子:

如果需要每个用户登出时都清楚输入的命令历史记录,可以在 /etc/skel/.bash_logout 文件中

添加: rm -f $HOME/.bash_history 这样当用户在每次注销时.bash_history文件都会被删除

2、 组账号文件

与用户文件相类似

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

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

与组账号相关的配置文件也有两个,分是/etc/group和/etc/gshadow 前者用于保存 组账号名称、

GID号 、组成员等基本信息 后者用于保存组账号的加密密码字窜等信息(但是很少用到)某一个

组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应从用户账号

默认可能不会列出),多个组成员之间使用“,”(逗号)分隔

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

grep "root"  /etc/group    ### 检索那些组包括root用户

五、文件/目录的权限和归属

1、访问权限

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

写入W:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

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

2、归属

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

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



3、设置文件和目录权限——chmod

chomd 【ugoa -【+or-or=】【rwx】文件

关于 [ugoa]:

‘u’ 代表文件属性
‘g’ 代表文件属组内的用户
‘o’ 代表其他任何用户
‘a’ 代表所有用户
关于 [±=] :

‘+’ 代表增加相应权限
‘-’ 代表减少相应权限
‘=’ 代表仅设置对应的权限

注:八进制数字 r>4   w.>2    x>1

举例:chmod 775 文件/目录 管理员和组成员有读写执行的权利 其他用户只能读执行

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

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

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

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

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

4、umask应用

新建一个新的文件或者目录时,它的默认权限时什么呢,这个与umask有关:

设置目录和文件的默认权限;

指定目前用户在新建文件或目录时的权限默认值;

新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)

 举例:umask 002  文件/目录 管理员和组成员有读写执行的权利 其他用户只能读执行(和chomd的使用差不多,区别,一个使用正常八进制的正掩码,一个是使用反掩码。

总结

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

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

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值