账号和权限管理

目录

一、用户账号和组账号

1.1.用户账号和组账号概述

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

1.2.用户的分类

1.3.组账号

1.4.用户账号文件/etc/passwd

1.5.用户账号文件/etc/shadow

二、用户账号管理

2.1.添加用户账号useradd

2.1.1.useradd命令

2.1.2. chage 命令

2.2.设置/更改用户口令passwd

2.3.修改用户账号的属性usermod

2.4.删除用户账号userdel

三、组账号管理

3.1.添加组账号groupadd

3.2.添加删除组成员gpasswd

3.3.删除组账号groupdel

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

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

4.2.组账号文件

五、查询账号相关信息的命令

5.1.查询账号信息groups

5.2.查询账号信息id

5.3.查询账号信息finger

5.4.查询账号信息w、who、users

六、设置目录与文件权限chmod

七、设置目录与文件归属chown

八、总结


一、用户账号和组账号

1.1.用户账号和组账号概述

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

(1)用户帐号

①超级用户 ②普通用户 ③程序用户

(2)组帐号

①基本组(私有组)   ②附加组(公共组)
 (3)UID和GID 

①UID (User IDentity,用户标识号)

②GID (Group IDentify,组标识号)

1.2.用户的分类

分为①超级用户  ②普通用户  ③程序用户

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

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

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

1.3.组账号

①管理员组: root, 0

②普通组:GID
系统组: 1-499 (CentOS6) ,1-999 ( CENTOS7 )
普通组: 500+ (CentOS6) ,1000+ ( CENTOS7 )
表示该账户需要密码才能登录,为空时,账户无须密码即可登录

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

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

1.4.用户账号文件/etc/passwd

(1)保存用户名称、宿主目录、登录Shell等基本信息

①文件位置: /etc/passwd

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

(2)实例:

[root@localhost ~]# head -2 /etc/passwd

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

bin:x:1:1:bin:/bin:/sbin/nologin

1.5.用户账号文件/etc/shadow

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

①文件位置:/etc/shadow

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

(2)实例

①[root@localhost ~]# head -2 /etc/shadow

root:$1$55HB4pbx$acHqk4IZiHTZ9cw0ZJe8f0:14374:0:99999:7:::

bin:*:14374:0:99999:7.::

②[root@localhost ~]# tail -1 /etc/shadow

teacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::

(3)含义

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

第一个字段为:账户名

第二个字段为:存放真正加密的密码

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

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

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

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

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

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

第九个字段为:保留,未使用

二、用户账号管理

2.1.添加用户账号useradd

2.1.1.useradd命令

useradd  [选项]...  用户名

(2)常用选项:

-u: 指定用户的UID号,要求该UID号码未被其他用户使用。
-d: 指定用户的宿主目录位置(当与-M一起使用时,不生效)。
-e: 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g: 指定用户的基本组名(或使用GID号)。
-G: 指定用户的附加组名(或使用GID号)。
-M: 不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录。
-s: 指定用户的登录Shell。

(3)实例:

useradd zhangsan
id zhangsan

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

2.1.2. chage 命令

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

chage 【选项】 用户名

(2)常用选项:

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

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

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

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

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

-I(大写的i): 过期 INACTIVE 天数后,设定密码为失效状态。

-l:显示帐户年龄信息,列出当前的设置。

2.2.设置/更改用户口令passwd

(1)passwd命令

passwd  [选项]...  用户名

(2)常用选项

-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户。
-S(大写):查看用户账户的状态。
-u:解锁用户账户。

(3)实例
passwd -l yy
passwd -S yy
passwd -u yy
passwd -d yy

扩充:

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

echo "123" | passwd --stdin zhangsan

2.3.修改用户账号的属性usermod

(1)usermod命令

usermod [选项]...  用户名

(2)常用选项

-l:更改用户账号的登录名称(Login Name)。
-L:锁定用户账户。
-U:解锁用户账户。

(3)以下选项与useradd命令中的含义相同

-u: 修改用户的UID号。
-d: 修改用户的宿主目录位置。
-e: 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g: 候改用户的基本组名(或使用GID号)。
-G: 修改用户的附加组名(或使用GID号)。
-s: 指定用户的登录Shell。

2.4.删除用户账号userdel

(1)userdel命令

userdel  [-r]  用户名

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

(2)实例

id yy
userdel -r yy
ls -ld /home/yy

三、组账号管理

3.1.添加组账号groupadd

(1)groupadd命令

groupadd [-g GID] 组账号名

(2)实例

groupadd -g 1100 yuyue   (添加组账号market)

tail -1 /etc/group

3.2.添加删除组成员gpasswd

(1)gpasswd命令

设置组账号密码(极少用)、添加/删除组成员

gpasswd [选项]...  组账号名

(2)常用选项

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

(3)实例

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

gpasswd -d webmaster root  ###确认webmaster用户已退出root组
正在将用户“webmaster”从“root”组中删除

gpasswd -M root,daemon,webmaster,mike,adm ###一次性添加多个用户到adm组中
grep "^adm" /etc/group
adm:x:4:root,daemon,webmaster,mike

3.3.删除组账号groupdel

(1)groupdel命令

groupdel  组账号名

(2)实例

groupdel market

grep "market" /etc/group

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

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

(1)文件来源

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

(2)主要的用户初始配置文件

①~/.bash_profile

②~/.bashrc

③~/.bash_logout

(3)含义

①. bash_profile:

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

② .bashrc:

例子中定义了路径,语言,命令别名(使用rm刑除命令时总是加上-i参数需要用户确认,使用ls命令列出文件
列表时加上颜色显示)。每次修改.bastrc后,使用source ~/.bashrc(或者. ~/.bashrc)就可以立刻加载修改后的设置,使之生效。一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。


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


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

# ~/.bash_ logout

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

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

history -c  //清楚历史记录

history -r /root/history.txt  //把命令读进来作为当前bash的历史记录

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

echo " history -c " >> -/.bash_logout

echo " history -c " >> -/.bash_profile

4.2.组账号文件

(1)与用户账号文件相类似

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

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

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

(2)含义

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

前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少使用到)。

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

五、查询账号相关信息的命令

5.1.查询账号信息groups

(1)groups命令

查询用户所属的组

groups  [用户名]

5.2.查询账号信息id

(1)id命令

查询用户身份标识

id   [用户名]

5.3.查询账号信息finger

(1)finger命令

查询用户账号的详细信息

finger [用户名]

5.4.查询账号信息w、who、users

(1)w、who、users命令

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

(2)含义

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

六、设置目录与文件权限chmod

(1)chmod命令

(2)常用选项

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

(3)文件或目录的权限和归属
1.访问权限

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

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

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

2.归属(所有权)

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

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

(4)查看目录和文件的属性

如“drwxr-xr-x"和“-rw-r--r--"。

权限字段由四部分组成,各自的含义如下所述。

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

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

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

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

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

上述格式中,字符组合“[uga..][+-=][rwx]"或数字组合"nnn”的形式表示要设置的权限模式。其中,“nnn"为需要设置的具体权限值,如“755”“644"等; 而“[uga...][+-=][rwx]"的形式中,三个组成部分的含义及用法如下所述。

"ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g"代表文件属组内的用户,“o”代表其他任何用户,"a"代表所有用户(u、 g、。的总和)。

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

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

七、设置目录与文件归属chown

(1)chownn命令

chown 属主  文件或目录

chown :属主  文件或目录

chown  属主:属组  文件或目录

(2)常用选项

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

(3)权限掩码umask

1.umask作用

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

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

2.umask设置:umask 022

3.umask查看:umask

4.实例

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

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

八、总结

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

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

(3)用户账号文件与组账号文件

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值