Python学习第四天----Linux之用户与用户组权限

Linux的用户及用户组管理

Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户口令。用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。

添加用户命令示例:useradd  test_user   即可创建用户test_user

用法:useradd [选项] 登录

useradd -D

useradd -D [选项]

选项:

-d, --home-dir HOME_DIR       新账户的主目录

-D, --defaults                显示或更改默认的 useradd 配置

-g, --gid GROUP               新账户主组的名称或 ID

-G, --groups GROUPS   新账户的附加组列表

-h, --help                    显示此帮助信息并推出

-m, --create-home     创建用户的主目录

-M, --no-create-home          不创建用户的主目录

-N, --no-user-group   不创建同名的组

-p, --password PASSWORD               加密后的新账户密码

-r, --system                  创建一个系统账户

-R, --root CHROOT_DIR         chroot 到的目录

-s, --shell SHELL             新账户的登录 shell

-u, --uid UID                 新账户的用户 ID

-U, --user-group              创建与用户同名的组

-Z, --selinux-user SEUSER     为 SELinux 用户映射使用指定 SEUSER

为新建用户设置密码:passwd test_user

添加用户组:groupadd test_user

修改用户信息:usermod

修改组信息:groupmod

删除用户:userdel -r test_user

删除组:groupdel 组名

更改文件或目录所属:chown -R 所属主:所属组 文件或目录

更改文件或目录权限:chmod -R 777/a+x/g-w/o=-  文件或者目录

作业一:

1) 新建用户natasha,uid为1000,gid为555,备注信息为“master”

[[email protected] /]# useradd -u 1000 -g 555 -c master natasha

2)修改natasha用户的家目录为/Natasha

[[email protected] /]# mkdir /Natasha

[[email protected] /]# usermod -d /Natasha

[[email protected] /]# usermod -d /Natasha natasha

3) 查看用户信息配置文件的最后一行

[[email protected] /]# tail -1 /etc/passwd

4) 为natasha用户设置密码“123”

[[email protected] /]# passwd natasha

更改用户 natasha 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[[email protected] /]#

5) 查看用户密码配置文件的最后一行

[[email protected] /]# tail -1 /etc/shadow

natasha:$6$wxwWQn0F$aR3nYxYj1KBGZh6z0zwudpCUF6sY7v45mZ7vq4Ji16ZlDBcssMNlhCpXoNzO4OZQE7aDt64Oz571xMbMJ05Tx0:17240:0:999    99:7:::

6) 将natasha用户账户锁定

[[email protected] /]# usermod -L natasha

7) 将natasha用户账户解锁

[[email protected] /]# usermod -U natasha

8) 新建组police,gid为999

[roo[email protected] /]# groupadd -g 999 police

注:此处gid为999的是另外一个组名,将其修改为其他后新建此组,修改文件为/etc/group

9) 查看组配置文件的最后一行

[[email protected] /]# tail -1 /etc/group

police:x:999:

10) 将natasha用户加入police组

[[email protected] /]# usermod  -G police natasha

[[email protected] /]# id natasha

uid=1000(natasha) gid=555(natasha) 组=555(natasha),999(police)

11) 修改police组的组名为jingcha

[[email protected] /]# groupmod -n jingcha police

12) 删除natasha用户,连家目录和邮箱一起删除

[[email protected] /]# userdel -rf natasha

13) 删除jingcha组

[[email protected] /]# groupdel jingcha

作业二:

1) 在用户的主目录下创建目录test,进入test创建空文件file1

[[email protected] ~]# cd ~

[[email protected] ~]# mkdir test

[[email protected] ~]# cd test

[[email protected] test]# touch file1

[[email protected] test]#

2)以长格式形式显示文件信息,注意文件的权限和所属用户和组

[[email protected] test]# ls -l file1

-rw-r--r--. 1 root root 0 3月  15 16:13 file1

3)为文件file1设置权限,使其他用户可以对此文件进行写操作。

[[email protected] test]# chmod o+w file1

4)查看设置结果,

[[email protected] test]# ll

总用量 0

-rw-r--rw-. 1 root root 0 3月  15 16:13 file1

5)取消同组用户对文件file1的读取权限,并查看设置结果。

[[email protected] test]# chmod g-r file1

[[email protected] test]# ll

总用量 0

-rw----rw-. 1 root root 0 3月  15 16:13 file1

[[email protected] test]#

6)用数字表示法为文件file设置权限,所有者可读、可写、可执行,所属组用户和其他用户只具有读和执行的权限。设置完成后查看设置结果。

[[email protected] test]# chmod 755 file1

[[email protected] test]# ll

总用量 0

-rwxr-xr-x. 1 root root 0 3月  15 16:13 file1

7)用数字形式更改文件file1的权限,使所有者只能读取此文件。其他任何用户都没有权限。查看设置结果。

[[email protected] test]# chmod 400 file1

[[email protected] test]# ll

总用量 0

-r--------. 1 root root 0 3月  15 16:13 file1

[[email protected] test]#

8)回到上层目录,查看test的权限

[[email protected] ~]# ls -dl test

drwxr-xr-x. 2 root root 19 3月  15 16:13 test

9)为其他用户添加对此目录的写权限

[[email protected] ~]# chmod o+w test

[[email protected] ~]# ls -dl test

drwxr-xrwx. 2 root root 19 3月  15 16:13 test

[[email protected] ~]#

作业三:

以操作文件的方式,新建一个用户alex

[[email protected] ~]# mkdir /home/alex                      #创建家目录

[[email protected] ~]# cp -r /etc/skel/.[!.]* /home/alex     #拷贝默认初始文件

[[email protected] ~]# tail -1 /etc/passwd

oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin

[[email protected] ~]# echo "alex:x:1005:1005::/home/alex:/bin/bash" >>/etc/passwd  #以追加的方式在用户文件末尾增加账号信息

[[email protected] ~]# tail -1 /etc/passwd

alex:x:1005:1005::/home/alex:/bin/bash

[[email protected] ~]# vim /etc/shadow                         #修改账号密码文件

文件末尾追加alex:!!:17240:0:99999:7:::然后退出保存

[[email protected] ~]# vim /etc/group                          #修改组文件

文件末尾追加alex:x:1007:然后保存退出

[[email protected] ~]# vim /etc/gshadow                        #修改组密码

文件末尾追加alex:!::然后保存退出

[[email protected] ~]# chown -R alex:alex /home/alex           #改变alex家目录的所属主和所属组

[[email protected] ~]# touch /var/spool/mail/alex              #为新账号新建邮箱

[[email protected] ~]# chown -R alex:mail /var/spool/mail/alex #修改alex的邮箱所属主是alex组是mail

作业四:

1) 新建目录/test/dir,属主为tom,数组为group1,/test目录的权限为777

[[email protected] ~]# mkdir -p /test/dir

[[email protected] ~]# groupadd group1

[[email protected] ~]# useradd tom

[[email protected] ~]# chown -R tom:group1 /test/dir

[[email protected] ~]# ls -al /test/dir

总用量 0

drwxr-xr-x. 2 tom  group1  6 3月  15 16:44 .

drwxr-xr-x. 3 root root   17 3月  15 16:44 ..

[[email protected] ~]# ls -al /test

总用量 0

drwxr-xr-x.  3 root root    17 3月  15 16:44 .

dr-xr-xr-x. 20 root root   277 3月  15 16:44 ..

drwxr-xr-x.  2 tom  group1   6 3月  15 16:44 dir

[[email protected] ~]#

[[email protected] ~]# chmod 777 /test

[[email protected] ~]# ls -dl /test

drwxrwxrwx. 3 root root 17 3月  15 16:44 /test

2) 新建用户jack,切换到jack用户下,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的others权限)

[[email protected] test]$ ls -dl dir

drwxr-xr-x. 2 tom group1 6 3月  15 16:44 dir

3)将jack加入group1组,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的group权限)

[[email protected] ~]# usermod -a -G group1 jack

[[email protected] ~]# id jack

uid=1008(jack) gid=1008(jack) 组=1008(jack),10000(group1)

[[email protected] ~]# su - jack

上一次登录:三 3月 15 16:49:55 CST 2017pts/0 上

[[email protected] ~]$ cd /test

[[email protected] test]$ ls

dir

[[email protected] test]$ ls -dl dir

drwxr-xr-x. 2 tom group1 6 3月  15 16:44 dir

[[email protected] test]$ cd dir

[[email protected] dir]$ ls

[[email protected] dir]$

4)切换到tom用户,验证tom用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的user权限)

[[email protected] ~]# su - tom

Attempting to create directory /home/tom/perl5

[[email protected] ~]$ cd /test

[[email protected] test]$ ls

dir

[[email protected] test]$ cd dir

[[email protected] dir]$ ls

[[email protected] dir]$

5)在dir目录内新建文件tom.txt,属主为tom,属组为group1,/test目录的权限为777

[[email protected] ~]# cd /test/dir

[[email protected] dir]# ls

tom.txt

[[email protected] dir]# ls

tom.txt

[[email protected] dir]# ls -l

总用量 0

-rw-rw-r--. 1 tom tom 0 3月  15 17:01 tom.txt

[[email protected] dir]# chown tom:group1 tom.txt

[[email protected] dir]# ls -l

总用量 0

-rw-rw-r--. 1 tom group1 0 3月  15 17:01 tom.txt

[[email protected] dir]#

6)新建用户rose,切换到rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的others权限来配合验证过程)

[[email protected] /]# useradd rose

[[email protected] /]# passwd rose

更改用户 rose 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

抱歉,密码不匹配。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[[email protected] dir]$ su - rose

密码:

最后一次失败的登录:三 3月 15 11:30:40 CST 2017tty2 上

最有一次成功登录后有 1 次失败的登录尝试。

Attempting to create directory /home/rose/perl5

[[email protected] ~]$

[[email protected] ~]$ cd /test/dir

[[email protected] dir]$ ls

tom.txt

[[email protected] dir]$ cat tom.txt

[[email protected] dir]$ id rose

uid=1009(rose) gid=1009(rose) 组=1009(rose)

[[email protected] dir]$ cat tom.txt

this is tom write

[[email protected] dir]$

[[email protected] /]# chmod o+w /test/dir/tom.txt

[[email protected] dir]$ vim tom.txt

[[email protected] dir]$ cat tom.txt

this is tom write

this is rose write

7)将rose加入group1组,在rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的group1权限来配合验证过程)

[[email protected] /]# usermod -a -G group1 rose

[[email protected] dir]$ cat tom.txt

this is tom write

this is rose write

[[email protected] /]# chmod 600 /test/dir/tom.txt

[[email protected] dir]$ cat tom.txt

cat: tom.txt: 权限不够

8)切换到tom用户,验证tom用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的user权限来配合验证过程)

[[email protected] ~]$ cd /test/dir

[[email protected] dir]$ ls

tom.txt

[[email protected] dir]$ cat tom.txt

this is tom write

this is rose write

[[email protected] dir]$ vim tom.txt

[[email protected] dir]$ cat t

cat: t: 没有那个文件或目录

[[email protected] dir]$ cat tom.txt

this is tom write

this is rose write

test over

[[email protected] dir]$

[[email protected] /]# chmod 000 /test/dir/tom.txt

[[email protected] dir]$ cat tom.txt

cat: tom.txt: 权限不够

总结:至此关于文件和目录的权限操作步骤已经练习完成,之所以说Linux是一个安全性较高的系统,就是因为Linux对系统文件的权限管理比较完善,在linux系统中一切皆文件,目录也可以看成是一个文件,跟文件一样,也可以修改其所属主和所属组的读写以及执行权限。关于文件及目录权限的管理在今后的生产环境中会经常遇到,希望大家细心处理不要弄错了!

时间: 2024-12-14 18:44:22

Python学习第四天----Linux之用户与用户组权限的相关文章

2019/12/11学习内容摘要(Linux系统用户与用户组管理①)

一,认识/etc/passwd和/etc/shadow 1. /etc/passwd :文件中保存系统中所有的用户和用户的主要信息. 在命令行输入 cat /etc/passwd  | head  (‘ | ’ 为管道符,作用是把前面的的命令输出在输入给后面的命令 ) 由图所示 /etc/passwd/被:分为7个字段 其含义如下 第一个字段为用户名(图中为root),是代表用户账号的字符串. 第二个字段是该账号的口令,这里的"x"代表的是密码标志,而不是真正的密码,真正的密码是保存在

doraemon的python centos的入门(五)用户和用户组权限

13 用户和用户组 13.1 用户 分类 超级管理员 root uid 0 普通用户 系统用户:一般情况下用来启动服务或者运行进程,一般情况下系统用户是不可以登录 uid 1-999(centos7)1-499(centos6) 可登录用户:可以登录系统的用户 uid 1000-65535(centos7) 500-65535(centos6) useradd 只能用root用户来创建 -d 指定用户的家目录,不能创建在/tmp,默认用户的家目录不需要手动创建-g 组信息 主组有且只能有一个-G

2019/12/12学习内容摘要(Linux系统用户与用户组管理②)

5.命令 chfn 用于修改用户的finger (finger为 /etc/passwd 文件第五个字段中显示的信息) 三,用户密码管理 1.命令passwd  格式 passwd [username],若命令后不加名字则是为自己设定密码 (只有root用户才能修改其他账户的密码,普通账户只能修改自己的密码) 2. 命令mkpasswd 用于生成密码  使用如下命令安装软件包 选项[-l ]指定生成密码的长度 [-s]指定特殊字符的个数 [-d]指定数字的个数 四,用户命令切换 1.命令su  

Python学习记录——Ubuntu(二)用户和用户组

1.etc文件作用: (1) /etc/passwd 用户账户信息. (2)/etc/shadow 安全用户账户信息. (3)/etc/group 组账户信息. (4)/etc/gshadow 安全组账户信息. (5)/etc/default/useradd 账户创建的默认值. (6)/etc/skel/ 包含默认文件的目录. (7)/etc/login.defs Shadow 密码套件配置. 2.创建用户流程: (1)sudo useradd -m(创建用户主文件夹)-s(设置用户登陆所使用的

[Python 学习] 二、在Linux平台上使用Python

这一节,主要介绍在Linux平台上如何使用Python 1. Python安装. 现在大部分的发行版本都是自带Python的,所以可以不用安装.如果要安装的话,可以使用对应的系统安装指令. Fedora系统:先以root登入,运行 yum install python Ubuntu系统:在root组的用户, 运行 sudo apt-get install python 2. 使用的Python的脚本 Linux是一个以文件为单位的系统,那么我们使用的Python是哪一个文件呢? 这个可以通过指令

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Python学习第四天学习写的小案例(主要是针对 分支/循环的学习)

Python学习第四天学习写的小案例 (2019/07/17) 第一题:使用while循环输出1 2 3 4 5 6 8 9 10 程序代码: s = 0 while s<10: if s==6: s += 1 # 当数字为7的时候输出一个空格出来 print(end=' ') continue s += 1 print(s,end=' ') 运行结果: 1 2 3 4 5 6 8 9 10 第二题: 求1-100的所有数的和 程序代码: count = 0 for i in range(101

python学习第四十八天json模块与pickle模块差异

在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int str list tuple dict pickle 的优点和缺点 优点 专门为python设计,支持python所有的数据类型 缺点 只能python使用,存储数据占空间大 文章来自 www.96net.com.cn 原文地址:https://www.cnblogs.com/96net/p/97806

python学习-第四天补充-面向对象

python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的python的伪私有,实际是python通过名字修改来进行的,python会把这样命名的变量或者函数名改为_类名__变量名 class A: __name="hello" t = A(); #print(t.__name) #这样会出现错误,错误提示说这个变量没有__name类型 print