3、Linux用户、组及权限的基础及相关高级话题,详细讲解

04_01_Linux用户管理命令详解

用户、组、权限

操作系统的组成:1、硬件;2、内核;3、库(动态库,静态库);4、shell

所谓的安装操作系统是把操作系统安装到哪里去了?

答:不是内存;硬盘,外部存储设备;

计算资源:

权限

用户

用户,容器,关联权限;用户组,方便地指派权限

用户:标识符

用户组:标识符

文件

安全上下文(secure context)

进程:也有属主和属组,进程能否访问资源,取决于发起进程的用户是否有权访问资源

权限:

r,w,x

文件权限含义:

r:可读,可以使用类似cat等命令查看文件内容

w:可写,可以编辑或删除此文件

x:可执行,executable,可以在命令提示符下当做命令提交给内核运行

目录权限含义:

r:可以对此目录执行ls以列出内部的所有文件;

w:可以在此目录创建文件

x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息

一般情况下,不建议文件有执行权限,但目录应该有执行权限

rwx:

0 000 --- 无权限

1 001 --x 执行

2 010 -w- 写

3 011 -wx 写和执行

4 100 r-- 读

5 101 r-x 读和执行

6 110 rw- 读和写

7 111 rwx 读写执行

用户账号信息:

用户:UID,/etc/passwd

组  :GID  /etc/group

影子口令:密码

用户:/etc/shadow

组  :/etc/gshadow

用户类别:

管理员:UID=0,内置的,改不了的

普通用户:1-65535,超过此范围?

系统用户:1-499(这类用户应该被限制,不允许登录系统)

一般用户: 500-60000(可以登录系统获取资源的用户)

用户组类别:

管理员组;

普通组:

系统组

一般组

用户组类别:

基本组:用户的默认组

私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组

附加组/额外组:默认组以外的其他组

一个进程如何去访问一个文件:

进程的权限=发起进程的用户的权限=进程的属组和属主

文件的权限=文件的属组/属主

怎么判断进程能否访问文件?看文件的属组和属主与进程的属组和属主是否重合

/etc/passwd

用户名:密码:UID:GID:注释:家目录:默认SHELL

account:用户名

password:也可能是X,密码占位符

UID:

GID:基本组

GECOS:注释信息

HOME DIR:家目录

SHELL:用户默认的shell

/etc/shadow

用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间

root:$1$OObZbuUH$2QXkgCFhaIxbnIAJ.2CsG1:16333:0:99999:7:::

1、用户名

2、数字1代表是MD5加密

3、$1$OObZbuUH$ salt值,6位随机数

4、!!代表用户锁定

 /etc/group:

组名:密码:GID:以此组为其附加组的用户列表

加密方法:

对称加密:加密和解密使用同一个密码

公钥加密:每个密码都成对出现,一个为私钥一个为公钥

单向加密(散列加密):提取数字的特征码,数据完整性校验

1、雪崩效应

2、定长输出

MD5:128位的定长输出

SHA1:160位定长输出

用户管理:

useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage

组管理:

groupadd,groupdel,groupmod,gpasswd

权限管理:

chown,chgrp,chmod

1、用户管理:

1.1用户添加

useradd [options] USERNAME

-u UID(UID>=500,其他用户未使用的ID号)

# useradd -u 1000 user1

# tail -1 /etc/passwd

user1:x:1000:1000::/home/user1:/bin/bash

-g GID(基本组ID)

# useradd -g hellosa user2

useradda¥ hellosa

# useradd -g mygroup user2

# tail -1 /etc/passwd

user2:x:1001:504::/home/user2:/bin/bash

-G GID,... (附加组,可以有多个,用“,”隔开即可)

# useradd -G mygroup user3

# !tail

tail -1 /etc/passwd

user3:x:1002:1002::/home/user3:/bin/bash

# tail /etc/group

user3:x:1002:

-c "COMMENT1 COMMENT2 COMMENT3" 添加附件信息

-d /path/to/directory 为用户指定某个家目录

# useradd -c "Tony Blare" -d /home/blare user4

# tail -1 /etc/passwd

user4:x:1003:1003:Tony Blare:/home/blare:/bin/bash

-s SHELL路径

# useradd -s /sbin/nologin user5

# su - user5

This account is currently not available.

# useradd -s /bin/tcsh user6

# su - user6

$ echo $SHELL

/bin/tcsh

$ exit

logout

# tail -1 /etc/passwd

user6:x:1005:1005::/home/user6:/bin/tcsh

-m -k 强行为用户创建家目录,-k复制/etc/skel文件

  -M

# useradd -M user7

# su - user7

su: warning: cannot change directory to /home/user7: No such file or directory

-bash-3.2$ pwd

/root

-bash-3.2$

归纳:有shell,但没有家目录

1.2 用户删除

userdel:

userdel [options] USERNAME :如果删除用户没有指定任何选项,用户的家目录不被删除

# ls /home

blare  tom  user1  user2  user3  user5  user6  w1  wqm

# userdel user1

# ls /home

tom  user1  user2  user3  user5  user6  w1  wqm

#userdel -r user2

# ls /home

blare  tom  user1  user3  user5  user6  w1  wqm

1.3 查看用户账号信息

id:查看用户的账号属性信息

-u

-g

-G

-n

eg:

# id

uid=0(root) gid=0(root)groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

# id user1

uid=1000(user1) gid=1000(user1) groups=1000(user1)

# id -u user1

1000

# id -g user1

1000

# id -G user1

1000

# id -G

0 1 2 3 4 6 10

# id -u -n user1

user1

# id -G -n

root bin daemon sys adm disk wheel

finger:查看用户账号信息

eg:

finger USERNAME

# finger user1

Login: user1                            Name: (null)

Directory: /home/user1                  Shell: /bin/bash

Never logged in.

No mail.

No Plan.

1.4 修改用户信息

usermod:修改用户的账号信息

-u UID

# id user3

uid=1002(user3) gid=1002(user3) groups=1002(user3),504(mygroup)

# usermod -u 2002 user3

# id -u user3

2002

-g GID

-G:用新的附加组覆盖原有的附加组

-a -G:在原有的附加组后,在追加新的附加组

-c 指定注释信息

-d 为用户指定新的家目录,用户之前创建的文件,使用不了了

-d -m:既指定了新的家目录,又将原来家目录的文件移到新的家目录下

-l 指定新的登录名

-L 锁定用户账号

-U 解锁用户账号

chsh:修改用户的SHELL

# finger user3

Login: user3                            Name: (null)

irectory: /home/user3                  Shell: /bin/bash

Never logged in.

No mail.

No Plan.

# chsh user3

Changing shell for user3.

New shell [/bin/bash]: /bin/tcsh

Shell changed.

chfn:修改用户的注释信息

1.5 用户密码管理:

passwd [USERNAME]

--stdin 标准输入

# echo "redhat" | passwd --stdin user3

Changing password for user user3.

passwd: all authentication tokens updated successfully.

-d 删除用户密码

-l 锁定用户账号

-u 解锁用户账号

pwck:检查用户账号完整性

2、组管理:

2.1 创建组:

groupadd

-g(基本组)

-r(添加为系统组)

# useradd -r apache

# tail -1 /etc/passwd

apache:x:101:102::/home/apache:/bin/bash

# ls /home

blare  tom  user1  user3  user5  user6  w1  wqm

# groupadd -r nginx

apache:x:101:102::/home/apache:/bin/bash

# tail -1 /etc/group

nginx:x:103:

2.2 修改组

groupmod

-g GID

-n  GROUPNAME

2.3 删除组:

groupdel

2.4 为组加密码:

gpasswd:为组设定密码

# useradd hadoop

# su - hadoop

$ cd /tmp

$ touch a.hadoop

$ ls -l

-rw-rw-r-- 1 hadoop hadoop    0 09-23 15:14 a.hadoop

$ id

uid=2003(hadoop) gid=2003(hadoop) groups=2003(hadoop)

newgrp GRPNAME <--->exit

passwd

/etc/passwd

/etc/shadow

/etc/group

环境变量:

PATH

HISTSIZE

SHELL

/etc/shells:制定了当前系统可以的安全shell

/etc/login.defs

export LANG=en 输出格式改为标准英文

练习:

1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux;

答:    #groupadd -g 3003 distro

#groupadd linux

#adduser -u 2002 -g distro -G linux mandriva

2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;

答:   # useradd fedora

# chfn fedora

# chsh fedora

一行命令:# useradd -c "Fedora Community" -s /bin/tcsh fedora

3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;

答:   # usermod -u 4004 -g linux -a -G distro,fadora mandriva

4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;

答:passwd -n 2 -x 50 fedora

5、将mandriva的默认shell改为/bin/bash;

答:# chsh Mandriva

/bin/bash

一行命令:usermod -s /bin/bash

6、添加系统用户hbase,且不允许其登录系统

答:# adduser -r hbase

# chsh hbase

/sbin/nologin

一行命令:adduser -r -s /sbin/nologin hbase

时间: 2024-10-24 01:41:21

3、Linux用户、组及权限的基础及相关高级话题,详细讲解的相关文章

Linux用户,组和权限管理

用户,组,权限 一.了解什么是用户,组和权限 1.对于linux系统来说,简单明了的特点就是多用户,多任务,也就是说一台linux系统的主机上面可以同时允许多个用户登录,当通过多个终端登录时可以同时使用这台linux的系统,然而对于linux习题来说,一切皆文件,别人和自己的工作任务都是以文件的形式存在的,不同的用户之间岂不是没有隐私或者安全而言,其实在linux上不是这样的,我们可以理解linux把每一个用户分配一间屋子,没有钥匙即权限我们是进不去浏览以及修改文件的,但是既然是一间屋子,那当然

linux 用户 组 和权限管理

Multi-task  Multi-Users 每个使用者: 用户标识 . 密码: Authentication(认证机制): Authorization  (授权机制): Account / Audition (审计): 组:用户组,用户容器 用户类别: 管理 普通用户 系统用户 登录用户 用户标识: UserIo ,UID 16bits 二进制数字:0-65535 管理员:0 普通用户: 1-65635 系统用户   1-499(Centos6)    1-1000(CentOS7) 登录用

Linux中用户,组及权限的概念及相关命令

Linux的用户.组和权限管理 用户: 计算机的资源是有限的,但使用者有很多,为了能够实现这些使用者彼此之间在资源上进行隔离而保证各使用者的文件得到保护,并且我们让主机能够认定这个使用者的确是他所声称的那个使用者,所以我们必须要在整个系统上完成两种机制,1.认证机制Authertication,2.授权机制Authorization,3审计机制 Audition. 用户类别: 管理员用户:root 普通用户:分系统用户和登录用户两种 用户的标识:UserID,UID,范围16bits的二进制数字

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

Linux用户与“最小权限”原则

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 作为一个Linux用户来说,我们并不需要特别关心下面的机制.但是,当我们去编写一个Linux应用程序的时候,就要注意在程序中实现以下切换(有必要的前提下),以便让我们的程序符合"最小权限"的原则,不给系统留下可能的安全隐患.给你的程序过度的权限的话,就像是吃下去下面的汉堡: 容易让人吃伤的汉堡: 过度的"权限" Linux的用户在登录(login)之

linux 用户及文件权限管理

Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学习一下 Linux 下的账户管理的基础知识. 1.首先查看用户的指令: who am i/whoami 输出的第一列

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

Linux系统的权限管理 Linux系统是一个多用户多任务的操作系统,多用户是指系统资源可以被不同用户各自拥有,即每个用户对自己的资源有特定的权限,用户之间互不影响.Linux系统有一套权限管理机制,文件不允许非授权用户访问或修改.这种机制的实现是通过用户和组的形式实现的. 5.1           Linux安全机制 账户管理是Linux安全机制的核心部分.登录Linux系统的用户都会被分配一个的用户账户.用户对系统上文件的访问权限取决于他们登录系统时使用的账户.每个用户的权限是通过创建用户

用户 组 和权限 以及权限的 分类

关于文件的安全我们要从3A验证 说起 1  Authentication:认证 2  Authorization:授权 3  Accouting|Audition:审计 由于系统文件的用户太多为了便于管理 我们便把系统的用户 进行分类 赋予权限 合理地分配资源 所以今天介绍的是 系统用户 用户组 的一些权限的 分配 修改 和文件的 权限修改 和赋权 以及一些特殊权限的用法 用户的分类 管理员:root 0 普通用户:1-65535 系统用户:1-499(CENTOS6) 1-999 对守护进程获

linux文件组、权限等

文件所有者.所在组合其他组  --改变用户所在组    组和在oa系统中的组差不多,用户代表的好像是个体,组有点像角色的意思.不过权限的话并不是个体从组中获得,组仅仅是一个机制,进行部分文件控制与共享,管理权限的机制,有点类似一个容器.            如何在linux中添加组    groupadd policeman       在添加用户时,指定将某个用户添加到哪个组中    useradd -g 组名 用户名 root权限改变某个用户所在的组:    usermod -g 组名 用