Linux学习笔记(二)——Linux用户管理和权限管理

Linux系统的权限管理

Linux系统是一个多用户多任务的操作系统,多用户是指系统资源可以被不同用户各自拥有,即每个用户对自己的资源有特定的权限,用户之间互不影响。Linux系统有一套权限管理机制,文件不允许非授权用户访问或修改。这种机制的实现是通过用户和组的形式实现的。

5.1           Linux安全机制

账户管理是Linux安全机制的核心部分。登录Linux系统的用户都会被分配一个的用户账户。用户对系统上文件的访问权限取决于他们登录系统时使用的账户。每个用户的权限是通过创建用户时分配的用户ID来实现跟踪的,每个用户的UID是唯一的。而用户登录系统时使用的不是UID而是用户名和相应的密码。

在Linux系统中,通过特定的文件跟踪和管理系统上的用户账户等信息,这个文件是/etc/passwd。

/etc/passwd文件:


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

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

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

rpcuser:x:29:29:RPC  Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous  NFS User:/var/lib/nfs:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

sshd:x:74:74:Privilege-separated  SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

yarn:x:500:500:yarn:/home/yarn:/bin/bash

Linux系统通过/etc/passwd文件将用户的登录名对应到用户的UID值,如:root用户的UID值为0,yarn用户的UID值为500。这个文件包含了登录系统用户的相关信息。但是需要注意的是,/etc/passwd文件中除了登录系统的用户信息外,Linux系统会为特定的功能组件创建不同的用户账户,这些账户不是正真意义上的用户账户,通常被称作系统账户,是系统上运行的各种服务进程访问资源时要用到的特殊账户。注意:所有运行在后台的服务都需要用一个系统用户账户首先登录到Linux系统上。

Linux系统预留了500以下的值作为备用系统账户的UID值,普通用户账户的UID值从500开始。如:yarn用户的UID值为500。同样,为了系统的安全,一些系统服务要使用特定的UID才能正常工作。

/etc/passwd文件中包含以下信息:


字段


说明


登录用户名


yarn


用户密码


x             注:在其他文件中加密保存,此处是占位符


用户账户ID:UID


500


用户账户组ID:GID


500


用户全名或备注


yarn


用户默认工作目录


/home/yarn


用户的默认Shell程序


/bin/bash

可以看到,账户的密码都设置成了x,这不是正真的密码,只是一个占位符。在Linux系统中,系统将用户账户的密码保存到了另一个单独的文件/etc/shadow中。只有特定的程序才能访问这个文件,如用户登录系统时。

对于/etc/passwd文件,不要手动修改或添加用户信息。因为这个文件是系统读写的,手动添加或修改账户信息可能会找出系统登录失败。

通过/etc/shadow文件系统对用户的登录密码进行管理和保护。

/etc/shadow:


root:$6$MqHv7L6nSiQpy7sm$O61Sd1Taw7WW0SzpXzWDHxcDz6UAv95jn43PipDYqFXdyJ6ITsEF45.ioMcuWyyTKUXErg/jPwHNLXTZrRNP5/:16736:0:99999:7:::

bin:*:15628:0:99999:7:::

daemon:*:15628:0:99999:7:::

adm:*:15628:0:99999:7:::

lp:*:15628:0:99999:7:::

rpcuser:!!:16736::::::

nfsnobody:!!:16736::::::

gdm:!!:16736::::::

sshd:!!:16736::::::

tcpdump:!!:16736::::::

yarn:$6$urFnNzBVwCHO7zwk$PW9oqYo0q.ZM3iyr5jDDu8Mng3o820geQCv4EoH.qY1v0d5easqDnQ.e/8NYdl8/gUNw9T/4QpK7rq4to0ncS0:16736:0:99999:7:::

注意:只有root用户才有权限访问/etc/shadow文件,这比/etc/passwd文件更加安全。

/etc/shadow文件字段信息:


字段


说明


登录用户名


yarn


加密后的密码


1970.1.1到当前天数


16736


多少天后才能更改密码


0


多少天后必须更改密码


99999


密码过期前提前多少天提醒用户更改密码


7


密码过期后多少天禁用用户账户


用户账户被禁用的日期


预留

5.2           用户管理

5.2.1       添加新用户

在Linux中添加新用户的命令是useradd,这个命令可以创建一个新用户账户并且创建用户的工作目录。用useradd命令创建新用户使用的是系统默认的系统配置,通过下面的命令可以看到默认情况下创建用户账户时的默认配置信息。

命令:


useradd  -D

控制台显示:


GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

字段含义:


默认值


说明


GROUP=100


新用户会添加到GID为100的公共组


HOME=/home


新用户的工作目录在/home目录下


INACTIVE=-1


新用户的账户过期后不会被禁用


EXPIRE=


新用户不设置过期日期


SHELL=/bin/bash


新用户的默认Shell解释器


SKEL=/etc/skel


系统会将/etc/skel目录下的文件复制到用户工作目录下


CREATE_MAIL_SPOOL=yes


为新用户创建接收邮件的文件夹

注意:创建用户时,系统会将/etc/skel目录下的文件复制到新用户的工作目录下。下面是/etc/skel目录下的文件。

/etc/skel目录下的文件:


drwxr-xr-x.   4 root root  4096 2月  11 11:51 .

drwxr-xr-x.  111 root root 12288 2月  20 09:38 ..

-rw-r--r--.    1 root root    18 2月  22 2013 .bash_logout

-rw-r--r--.   1 root root   176 2月  22 2013 .bash_profile

-rw-r--r--.   1 root root   124 2月  22 2013 .bashrc

drwxr-xr-x.   2 root root  4096 11月  12 2010 .gnome2

drwxr-xr-x.   4 root root  4096 10月  28 22:12 .mozilla

注意:创建新用户需要使用root用户的权限,命令如下:

创建一个新用户:


useradd  user01

useradd  -m user01

useradd命令常用的参数:


参数


说明


-g GID


为账户指定组


-p  password


为用户同时设置密码


-u UID


为用户指定UID

创建新账号时通常创建工作目录,有些Linux版本需要参数-m才会创建账号的工作目录。

5.2.2       删除用户

删除用户需要使用userdel命令,默认情况下删除账户不同时删除工作目录,如果想同时删除账户的工作目录,需要参数-r,命令如下:

删除用户:


userdel user01

userdel -r user01

需要注意的是,在删除账户时,要确认工作目录下是否有重要文件,以防删除重要文件。

5.2.3       修改用户

修改用户相对较复杂,Linux提供了不同的命令用来修改账户信息,如下表:


命令


说明


usermod


修改账户字段的值


passwd


修改账户密码

usermod命令可以修改/etc/passwd文件中大多数的字段,只要命令后面跟上相应的参数就可以了。如下所示。

修改账户登录名:


usermod  -l newName oldName

将账户登录名user01修改为userbak。

usermod命令常用的参数:


参数


说明


-l  newloginname


修改登录名


-L


锁定用户


-U


解锁用户

passwd命令用来修改账户的登录密码,使用方式较简单,如果修改当前用户的密码,直接输入passwd命令即可,如果要修改其他用户密码,需要root用户的权限,命令如下。

修改用户登录密码:


passwd

passwd  user01

5.3           用户组管理

用户账户对单个用户管理相对较方便,但是对于多个相同类型的账户同时进行管理就不太方便了,所以有了组的概念。组允许多个用户共享一组共享的权限,用相同的权限访问系统上的文件或目录。

不同的Linux版本略有不同,有的系统会将所有的用户同属于一个组,这样出现的问题是一个用户的文件同组的其他用户都可以访问。有的系统为每个用户创建一个组,这样更安全些。在系统中每个组有唯一的GID和组名。类似于/etc/passwd文件,系统上所有的组信息都保存到/etc/group文件中,如下所示:

/etc/group:


root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin,adm

adm:x:4:adm,daemon

tcpdump:x:72:

slocate:x:21:

yarn:x:500:

/etc/group文件也有四个字段组成,组名称、组密码、GID和属于本组的用户。

5.3.1       创建组

创建一个新组时,默认情况下没有用户属于这个组,如果需要将用户添加到新组中,需要使用usermod命令。创建新组的命令groupadd,命令格式如下。

创建一个新组group01:


groupadd  group01

groupadd  group02 -g 800

创建新用户并指定组:


useradd  user02 -g group01

为yarn用户添加附加组:


usermod  -G group01 yarn

注意:需要使用root权限。

5.3.2       修改组

因为组信息相对较少,所以通过groupmod命令可以修改组名称和GID,命令如下:

修改组名称:


groupmod  -n newName oldName

修改GID:


groupmod  -g 550 group01

5.3.3       删除组

删除组的命令是groupdel,使用较简单,但是删除组时要谨慎,如果组中已经存在用户,要先删除组中的所有用户后才能删除组。

删除一个组:


groupdel  group01

5.4           文件权限说明

首先执行ls命令,显示当前目录下的文件信息列表。

命令格式:


ls -l

控制台显示:


drwxrwxr-x.  3 yarn yarn 4096 2月   16 17:06 bash01

-rwxrw-r--.  1 yarn yarn  224 2月  16  17:07 bash01.sh

drwxrwxr-x.  2 yarn yarn 4096 12月 24 10:01 class20151221

drwxrwxr-x.  4 yarn yarn 4096 1月   20 12:05 hdfs01

drwxrwxr-x.  3 yarn yarn 4096 11月 24 14:40 mapreduce01

drwxrwxr-x.  3 yarn yarn 4096 11月   3 19:59 mapreduce02

在Linux系统中每一个文件和目录都有相应的访问许可权限。我们可以用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为可读、可写、和可执行三种,分别以r w x 表示,其含义为:


对象


r


w


x


文件


可以读取文件内容,如使用cat命令显示文件内容


可以通过vi编辑器编辑文件内容


文件的执行权限


目录


可以浏览目录下的文件信息内容,可以拷贝目录下的文件到其他目录


可以创建文件或目录,删除文件或目录,剪切文件或目录


是否有权限进入目录

文件和文件夹有三类用户:

   1. 文件所有者

2. 文件所有者所在的组

3. 其他临时用户

Linux文件的详细显示格式说明:

例:下面两条信息一个是目录文件信息,一个是文件信息。


drwxrwxr-x.  3 yarn yarn 4096 2月   16 17:06 bash01

-rwxrw-r--.  1 yarn yarn  224 2月  16  17:07 bash01.sh

信息的第一列内容是:drwxrwxr-x和-rw-r--r--,说明文件的读写权限,共有十个字符的组成。第一位是文件的类型,d代表目录,-代表文件。第二位到第四位是文件所有者的权限。r是读权限,w是写权限,x是执行权限。第五位到第七位是文件所属组的权限,第八位到第十位是临时用户的权限。第三列是文件的所属用户和所属组。第四列是文件的大小显示的是字节数。第五列是最后修改时间。最后一列是文件的名称。

5.5           文件权限管理

如果想修改一个文件或目录的已有权限,首先文件的属主是当前用户或者是超级用户root,如果是其他用户的文件是没有权限进行修改的。如果要修改文件的权限,需要使用chmod命令,有两种使用方式,下面进行说明。

命令格式一:


chmod [用户] [运算符] [权限] 文件/目录名

用户:


u 表示文件所有者

g 表示同组用户

o 表示其它用户

a 表示所有用户

 

  运算符:


+ 添加某个权限

- 取消某个权限

= 赋予给定的权限并取消原有的权限

 

  权限:


r 可读

w 可写

x 可执行

 

给/home/yarn目录下的hadoop.txt文件所有者和所在组添加读写权限


chmod  ug+rw /home/yarn/hadoop.txt

取消临时用户的执行权限


chmod  o-x /home/yarn/hadoop.txt

给临时用户重新设置读权限


chmod  o=r /home/yarn/hadoop.txt

命令格式二:


chmod [权限] 文件/目录名

第二种方式更加简单,采用二进制方式设置:


文件所有者


文件所有者所在组


其他临时用户



r


w


x


x


r


w


x


r


w


/


1


1


1


1


1


1


1


1


1


777


1


1


1


1


0


1


0


0


0


750

同时设置三种类型用户的权限


chmod  777 /home/yarn/hadoop.txt

同时设置三种类型用户的权限


chmod  750 /home/yarn/hadoop.txt

对目录进行权限的设置,如果目录内的文件同时设置权限,需要使用递归方式,需要使用参数-R。

同时将目录下的所有文件设置权限


chmod  -R 777 /home/yarn/dir

第二种方式更加简单。

5.6           文件所属管理

改变文件的属主需要使用root用户的权限,使用的命令是chown,下面进行说明。

命令格式:


chown[参数] 用户名  文件/目录名

chown[参数] 用户名:所属组名 文件/目录名

更改文件的所有者,将文件 hadoop.txt的所有者更改yarn。用户yarn可以使用 chmod 命令允许或拒绝其他用户访问 hadoop.txt文件


chown  yarn /home/yarn/hadoop.txt

将/home/yarn目录下的dir1目录的所有者和所有组更改成yarn和yarngroup,需要注意dir1目录下的文件所有者和所有组不会更新


chown  yarn:yarngroup /home/yarn/dir1

将/home/yarn目录下的目录dir1的所有者和所有组更新为yarn和yarngroup,参数-R递归实现dir1目录下的所有文件的所有者和所有组都进行了修改


chown  -R yarn:yarngroup /home/yarn/dir1

时间: 2024-10-13 19:52:21

Linux学习笔记(二)——Linux用户管理和权限管理的相关文章

Linux学习笔记<二>——Linux根文件系统和文件目录管理

文件系统中各目录的说明: /boot:系统启动相关的文件,如内核,initrd以及grub(bootloader) /dev:设备文件 设备文件: 块设备:随机访问,数据块,唔所谓顺序,如银盘 字符设备:线性访问,按字符为单位,有次序地一个接一个地输入/读取,如键盘,鼠                  标,显示器 设备号:主设备号(major)和次设备号(minor) /etc:配置文件 /home:用户的家目录,每一个用户的家目录默认为/home/USERNAME /root:管理员的家目录

linux学习笔记二:linux文件系统

各大linux的版本都遵循着FHS(Filesystem Hierarchy Standard)文件系统目录标准,是一个树形结构的组织文件.在此简要记录各目录. linux下所有文件都处在/文件下. 树形结构图: /boot:  系统启动相关的文件 主要文件 1.vmliunx:内核    2.initramfs:磁盘映像文件   3.grub(bootloader) /dev:设备文件 块设备:随机访问设备. 字符设备:线性设备,顺序访问.按字符为单位.键盘.鼠标. 设备号:主设备号(majo

linux学习笔记二:硬盘信息查询

在linux管理中,硬盘管理是很重要的一部分.包括阵列,分区,逻辑卷等操作,在对硬盘操作前,需要充分的了解硬盘的信息.常用的硬盘查询有以下几种: 1.df  查看文件系统空间使用情况: linux-lszd-db:~ # dfFilesystem     1K-blocks     Used Available Use% Mounted on/dev/sda6      809262496 37615092 770825244   5% /udev             8076412    

Linux学习笔记二:Linux的文件处理命令

1.文件处理命令:ls 作用:显示目录文件 语法:ls [选项] [文件或目录] [选项]:-a 显示所有文件,包括隐藏文件   -l 显示详细信息 -d 查看目录属性 [文件或目录]:当省略时默认将当前路径作为参数 实例: · ls 显示当前文件夹下所有文件(不包括隐藏文件)的信息 · ls -l 显示当前文件夹下所有文件(不包括隐藏文件)的详细信息 · ls -ld  显示当前文件夹的详细信息 技巧:要查看文件夹的信息,必须加-d参数:要查看详细参数,必须加-l参数. 2.文件的属性 使用”

linux学习笔记二-----文件权限管理

一.分析文件权限(ln -s 文件名 快捷方式名 用来创建文件的快捷方式,下方ll查看信息时会在第一个字符处显示l) [[email protected] ~]$ ll total 4 drwxrwxr-x. 2 hjp hjp 4096 Jan 6 00:16 t drwxrwxr-x. 2 hjp hjp 6 Jan 5 20:44 testdir [[email protected] ~]$ 以drwxrwxr-x. 2 hjp hjp 4096 Jan 6 00:16 t为例1.d:表示

Linux学习笔记(二)——主机规划及磁盘分区

最近进行系统性的学习Linux系统,读了鸟哥的Linux私房菜,摘录学习笔记如下: 1)  在Linux系统中,每个装置都被当成一个档案来对待,每个装置都会有装置文件名. 2)  磁盘的装置文件名主要分为IDE接口的/dev/hd[a-d]及 SATA/SCSI/USB界面的/dev/sd[a-p]两种: 3)  整颗磁盘的第一个扇区非常重要,因为他记录了整颗磁盘的重要信息!磁盘的第一个扇区主要记录了两个重要的信息,分别是: 主要启动记录区(Master Boot Record, MBR):可以

Linux学习笔记(四)之用户登录

1.Linux是一个网络操作系统,作为多用户,多任务的操作系统,其系统资源是所有用户共享的.任何要使用系统资源者必须先在系统内登记,注册,即开设用户账号,该账号又包含用户名,口令,所用的shell,使用权限等.为了计算机系统的安全,LInux会对每一个要求进入系统的用户进行用户名和口令的验证,如果验证成功则用户登录成功,否则系统拒绝登录. 2.其中用户登录又分为两种,一种是用户的终端登录,另外一种是远程登录,如果用户是在本地终端登录Linux系统,便为用户的终端登录,如果用户是通过网络登录Lin

Linux学习笔记(二)-Shell教程

1. Shell教程 1. Shell教程 Shell是一个用c语言编写的程序,是用户使用Linux的桥梁.Linux既是一种命令语言,又是一种程序设计语言. Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.. shell脚本:Shell脚本是一种为了Shell编写的脚本程序. shell环境:Shell编程跟Java,Php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以. 来自为知笔记(Wiz)

linux学习笔记(二)之文件系统结构

一.目录结构 1.目录功能介绍 很多linux系统的发行版目录结构布局都遵循着FSSTND标准,这一标准的特点是根目录非常简洁,只包含系统最基本的文件,遵循这一标准,有利于程序的编写和移植,也便于系统管理和维护. (1)/etc目录 这个目录主要用于存放系统管理相关的配置文件以及子目录,其中比较重要的有系统初始化文件/etc/re,用户信息文件/etc/passwd等,相关网络配置文件和服务启动文件也均在这个目录下.详细信息如下: passwd 用户库文件,所有用户的用户名,UID,GID和工作

Linux学习笔记:Linux发行版

Linux发行版 什么是Linux distribution – Linux的本质来说,它只是操作系统的核心(内核),负责控制硬件.管理文件系统.程序迚程等,并丌给用户提供各种工具和应用软件. – 人们以Linux核心为中心,再集成搭配各种各样的系统管理软件戒应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版. Linux主要发行版 RedHat Linux:红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持,由于该发行版是商业化产品,所以丌是免费