Linux系列--用户、文件管理

一、概述

        Linux系统中超级用户是root,通过超级用户root可以创建其它的普通用户,Linux是一个支持多用户的操作系统。在实际使用中,一般会分配给开发人员专属的账户,这个账户只拥有部分权限,如果权限太高,操作的范围过大,一些误操作可能导致系统崩溃,或者数据不安全,所以多用户机制就是一种系统安全策略。

         在Linux系统中任何一个用户都对应:一个用户名 + 一个口令。用户使用系统时需要输入用户名和口令进行登录,登录成功后就可以进入自己的主目录(主目录就是自己的工作目录)。
用户账号管理主要包括以下三方面:

  • 用户组的管理
  • 用户的管理
  • 为用户主目录之外的目录授权

二、用户组的管理 

一、用户组概念

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。
用户组的管理涉及用户组的添加、修改和删除。
用户组的添加、修改和删除实际上就是对/etc/group文件的更新。

二、查看用户组相关信息 

一、使用root账户查看当前系统的用户组有哪些

1、cat /etc/group

一行就是一个组,每一个用户组四部分组成:组名:密码标识:GID:该用户组中的用户列表。

二、查看当前登录的账户属于哪一组

1、groups

三、查看某个用户属于哪一组

1、groups root

三、用户组的添加 

一、语法

1、语法:groupadd [选项] 组名     (groupadd之间没有空格)

2、常用选项包括:

  • -g 可以通过这个选项来指定新用户组的标识号(GID)

3、栗子:

  • groupadd dev1
  • groupadd -g 101 dev2     其中101是dev2这个组的组号

二、用户组的修改

1、修改用户组组号

groupmod -g 102 dev2

2、修改用户组组名

# 将dev2修改为dev3
groupmod -n dev3 dev2

三、用户组的删除

# 删除用户组dev3
groupdel dev3

 三、用户的管理

一、添加用户

一、描述

添加用户就是在系统中创建一个新账号,然后为新账号分配用户组、主目录等资源。

二、语法:useradd [选项] 用户名

三、选项:

  • -d 指定新用户的主目录
  • -g 指定新用户属于哪个组(主组)
  • -G 可以给新用户添加附加组

四、栗子

1、useradd lisi

注意:当新建用户时,没有指定组,也没有指定工作目录时:

  • 默认的组名:和自己用户名一样
  • 默认的主目录:/home/用户名

2、useradd -d /usr/zhangsan zhangsan

3、useradd -d /usr/lisi -g dev -G test lisi

添加lisi用户,该用户的主目录/usr/lisi,所属主组dev(开发组),附加组test(测试组)

二、设置密码 

一、命令

passwd lisi

注意:增加用户就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。

二、查看用户信息

通过查看/etc/passwd文件可以看到系统中有哪些用户,例如执行:cat /etc/passwd

密码会单独存储在/etc/shadow文件中,例如执行:cat /etc/shadow  这个密码是通过某种算法进行加密的。

三、切换用户 

一、切换指定用户

 su bjpowernode

二、切换root用户

su root

注意:从普通用户切换到高级用户需要密码。密码输入时不回显。切换到普通用户之后,该普通用户默认只对自己的“主目录”有权限,主目录之外的目录是没有权限的

四、修改用户 

修改用户就是对用户名,用户主目录,用户组等进行修改。

一、语法:usermod [选项] 用户名

二、选项

  • -d 指定新用户的主目录
  • -g 指定新用户属于哪个组(主组)
  • -G 可以给新用户添加附加组
  • -l 指定新的用户名(小写的)

三、栗子

1、usermod -l zhangsi zhangsan

2、# -m 选项很重要,当有了这个选项之后,目录不存在时会新建该目录。
usermod -d /usr/zhangsan2 -m zhangsan

3、usermod -g dev1 zhangsan

4、usermod -L zhangsan

5、usermod -U zhangsan

五、删除用户 

一、命令

userdel -r zhangsan

-r 选项的作用是连同该用户主目录一块删除。

 四、为用户主目录之外的目录授权

一、创建目录

mkdir /java

二、给目录授权

# -R表示递归设置权限,该目录下所有的子目录以及子文件
chmod -R 775 /java

三、创建组

groupadd dev

四、把目录赋予组

chgrp -R dev /java

五、创建用户

useradd xiaoming

六、设置密码

passwd xiaoming

七、给用户添加附加组

usermod -G dev xiaoming

 五、文件权限

一、文件权限概述

Linux为了保证系统中每个文件的安全,引入了文件权限机制。针对于系统中的每一个文件Linux都可以提供精确的权限控制。它可以做到不同的用户同一个文件具有不同的操作权利。而通常这个权利包括以下3个:

  • 读的权利(Read,简称r)
  • 写的权利(Write,简称w)
  • 执行的权利(eXecute,简称x)

不同的用户包括3类用户:

  • 文件拥有者(User,简称U):该文件的创建人
  • 同组用户(Group,简称G):和创建人在同一组的用户
  • 其他组用户(Other,简称O):和创建人不在同一组的用户

这就是UGO模型。也就是说一个文件的权限包括三组:

  • 第一组U:我们可以给文件的创建者设置rwx权限。
  • 第二组G:我们可以给文件创建者的同组人员设置rwx权限。
  • 第三组O:我们可以给和文件创建者不在同一组的人员设置rwx权限。

二、查看文件权限 

一、采用“ls -l”命令可以查看文件的具体权限

二、组成:文件类型+文件的权限,共10个字符

1、第1个字符:代表文件的类型,- 代表文件,d代表目录。

其实Linux中文件的类型有7种:

  • - 代表普通文件
  • d 代表目录
  • l 代表链接(软链接:快捷方式)
  • b 块设备(硬盘,软盘等存储设备)
  • c 字符设备(通常以字节流的方式访问)
  • p 管道文件(主要用于进程间通讯)
  • s 套接字文件(主要用于网络通讯)

2、第2,3,4个字符:代表文件创建者对该文件的权限

3、第5,6,7个字符:代表与文件创建者在同一组的用户对该文件的权限。

4、第8,9,10 个字符:代表其他组人员对该文件的权限

5、文件权限的9个字符中包含四种字符,分别是:r、w、x、-

  • r:读权限
  • w:写权限
  • x:执行权限
  • -:无权限

三、基于UGO设置文件权限 

修改权限的命令是chmod,如果采用UGO方式修改权限的话,大致语法是这样的

1、chmod g+w Hello.java    给同组人员(g:代表同组人员)增加(+)写(w)权限

2、chmod g+w, o+w Hello.java    给同组人员(g:代表同组人员)增加(+)写(w)权限,给其他组成员增加写权限

3、chmod g-w, o-w Hello.java   去除同组人员写权限,去除其他组成员写权限

4、栗子:

将文件拥有者的写权限删除:

尝试使用vim命令编辑HelloWorld.java文件

再把写的权限加上

这个时候文件可以编辑了

四、基于421设置文件权限 

一、421采用数字来表示不同的权限

  • 4代表读,100,用二进制转换就是(2的2次方等于4)
  • 2代表写    010,用二进制转换就是(2的1次方等于2)
  • 1代表执行 001,用二进制转换就是(2的0次方等于1)

其实就是rwx,这三个字母,用二进制表示,1代表有对应权限,0代表没有对应权限,

例如:如果让一个用户读、写、执行权限都有的话,就是4 + 2 + 1 = 7(111,表示读、写、执都有),那么7这个数字就代表rwx的权限都具备。如果是5就表示4+1(101)的组合,表示有r和x的权限。如果是6就表示4+2(110)的组合,表示有r和w的权限。如果是0就表示无任何权限。

二、通过421这几个数字的不同组合来表示不同的权限,有以下几种种不同的组合:

  • 0:无权限
  • 1:x           001
  • 4:r           100
  • 5:r + x     101
  • 6:r + w   110
  • 7:r + w + x    111

也就是说一共6个数字:0 1 4 5 6 7

三、采用421方式设置权限

1、语法:chmod 三个数字 文件名

2、栗子:

chmod 755 HelloWorld.java

第一个数字7是文件拥有者的权限,第二个数字5是同组人员的权限,第三个数字5是其他组人员的权限。也就是说文件拥有者的权限是rwx,同组人员是r-x,其他组人员是:r-x

五、chown修改文件拥有者 

使用 chown 命令来修改指定文件或目录的拥有者和所属组

一、语法

chown [选项]... [所有者][:[所属组]] 文件...

其中,所有者所属组 可以是用户名或用户 ID、组名或组 ID,如果省略 :所属组,则默认为修改文件的所有者。

二、常用选项

  • -R:递归修改,包括子目录和文件。

三、栗子

1、将 /home/user/file.txt 文件的所有者修改为 root 用户

sudo chown root /home/user/file.txt

2、将 /home/user/dir/ 目录及其子目录和文件的所有者都修改为 userA 用户,所属组修改为 groupA 组,可以使用如下命令:

sudo chown -R userA:groupA /home/user/dir/

注意:在使用 chown 命令时,需要有足够的权限才能修改文件或目录的拥有者和所属组。一般需要使用 sudo 命令或使用具有相应权限的用户来执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值