账号和权限管理

目录

一、管理用户

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

2.用户账号文件

3. chage命令

4.组的分类

5.passwd命令 

6.usermod命令

7.删除用户账号

8.用户账号的初始配置文件

 9.组账号文件

10.groupadd命令

11.gpasswd命令 

12. groupdel命令

13. groups命令

14.查询账号信息

二、目录和文件的权限和归属

1.查看目录和文件的属性

2.设置文件和目录的权限

3.设置文件和目录的归属

4.权限掩码

5.last命令


一、管理用户

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

Linux 用户三种角色:

超级用户: 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.用户账号文件

功能:保存用户名称、宿主目录、登录Shell等基本信息

文件位置:/etc/passwd

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

passwd文件账号记录详细说明

root:用户名,用户名仅是为了方便用户记忆。Linux系统是通过UID来识别用户身份,分配用户权限
x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件。Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全
补充:注意!!!,虽然"x"并不表示真正的密码,但也不能删除,如果删除了 "x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)
0:用户账号的 UID 号。
0:所属基本组账号的 GID 号
root:描述性信息,此字段只是用来解释这个用户的意义
/root:宿主目录,即该用户登录后所在的默认工作目录

/etc/shadow(影子文件)
/etc/shadow 文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性和 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为9个字段

3. chage命令

功能:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
chage [选项] 用户名

选项

功能

-m

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

-M

密码保持有效的最大天数

-w

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

-E

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

-d

上一次更改的日期

-i

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

-I

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

4.组的分类

当一些用户需要做同一件事情的时候,把他们加到一个组中便于管理
1、基本组:一般新建用户的时候会随用户自动创建,与用户同名
2、附加组:一般一个用户可以有0个或多个附加组
一个用户只有一个基本组,可以有多个附加组

添加用户账号

选项

功能

-u

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

-d

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

-e

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

-g

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

-G

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

-M

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

-s

指定用户的登录Shell

5.passwd命令 

选项

功能

-d

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

-l

锁定用户账户

-S

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

-u

解锁用户账户

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

6.usermod命令

usermod  [选项]...   用户名                   修改用户账户的属性

选项

功能

-l

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

-L

锁定用户账户

-U

解锁用户账户

与useradd命令相同的参数 

选项

功能

-u

修改用户的UID号

-d

修改用户的宿主目录位置

-e

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

-g

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

-G

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

-s

指定用户的登录Shell

修改用户名

添加组

7.删除用户账号

userdel命令                 userdel  [-r]  用户名

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

8.用户账号的初始配置文件

添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文 件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件 包括“.bash_logout”、“.bash_profile”和“.bashrc”。其中,“.bash_profile”文件中的命令将在该用户每次登录时被执行;“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登录系统)时执行;而“.bash_logout”文件中的命令将在用户每次退出登录时执行

1 .bash_profile:示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH),并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回),CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath

2 .bashrc :例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效

一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了

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

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

# ~/.bash_logout

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

如果需要每个用户登出时都清除输入的命令历史记录,可以在/etc/skel/.bash_logout文件中添加下面这行rm -f $HOME/.bash_history 。这样,当用户每次注销时,
.bash_history文件都会被删除

 9.组账号文件

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

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

10.groupadd命令

groupadd  [-g GID]  组账号名

11.gpasswd命令 

选项

功能

-a

添加用户到组

-d

从组删除用户

-A

指定管理员

-M

指定组成员和-A的用途差不多

-r

删除密码

-R

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

12. groupdel命令

删除组命令

13. groups命令

查看组命令(groups或者id)

14.查询账号信息

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,后面的数字代表登录的时间顺序,越小证明登录的越早

二、目录和文件的权限和归属

1.查看目录和文件的属性

访问权限
读取 r:允许查看文件内容、显示目录列表
写入 w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行 x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号

2.设置文件和目录的权限

chmod命令

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

u:属主     g:属组     o:其他用户     a:所有用户

+:增加     -:去除     =:设置权限

r:读     w:写     x:运行权限

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

3.设置文件和目录的归属

chown命令

chown 属主  文件或目录

chown :属组  文件或目录

chown 属主:属组  文件或目录

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

4.权限掩码

目录默认创建755权限,文件默认创建644权限 

umask作用:
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask022
umask查看:umask

5.last命令

last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..]

last作用是显示近期用户或终端的登录情况。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接系统

执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录

-num |-n num指定输出记录的条数
-f file 指定记录文件作为查询的log文件
-t YYYYMMDDHHMMSS 显示指定时间之前的登录情况
username 账户名称<br>tty 终端机编号

选项

功能

-R

不显示登录系统或终端的主机名称或IP

-a

将登录系统或终端的主机名过IP地址显示在最后一行

-d

将IP地址转成主机名称

-I

显示特定IP登录情况

-o

读取有linux-libc5应用编写的旧类型wtmp文件

-x

显示系统关闭、用户登录和退出的历史

-F

显示登录的完整时间

-w

在输出中显示完整的用户名或域名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值