linux bin目录上传需要权限,第五章、Linux用户及权限详解

第五章、Linux用户及权限详解

03_04_Linux用户及权限详解

今天内容:

用户、组、权限

用户,用户组: 都只是标识符

安全上下文(secure context):

权限:

r, w, x

文件:

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

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

x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行;

目录:

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

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

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

rwx:

r--:只读

r-x:读和执行

---:无权限

0 000 ---:无权限

1 001 --x: 执行

2 010 -w-: 写

3 011 -wx: 写和执行

4 100 r--: 只读

5 101 r-x: 读和执行

6 110 rw-: 读写

7 111 rwx: 读写执行

755:rwxr-xr-x:属主 属组 其他

rw-r-----: 640

660: rw-rw----

rwxrwxr-x: 775

用户:UID, /etc/passwd

组:GID, /etc/group

影子口令:

用户:/etc/shadow

组:/etc/gshadow

用户类别:

管理员:0

普通用户: 1-65535

系统用户:1-499, 不需要登录系统,只用来运行某些后台服务

一般用户:500-60000

用户组类别:

管理员组:

普通组:

系统组:

一般组:

用户组类别:

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

基本组:用户的默认组

附加组,额外组:默认组以外的其它组

e.g:

进程:tom tom

对象:rwxrw-r--  jerry tom a.txt

tom执行ls命令

rwxr-xr-x root root /bin/ls, 文件属主各属组

ls 运行时,进程的属主是运行的用户

man 5 passwd

/etc/passwd

account: 登录名

password: 密码

UID:

GID:基本组ID

comment: 注释

HOME DIR:家目录

SHELL:用户的默认shell, cat /etc/shells查看合法shell

man 5 shadow: 查看/etc/shadow文件格式

/etc/shadow

account: 登录名

encrypted password: 加密的密码,两个!号表示锁定,不允许登录。格式: $1位$8位$密码

1位段: 加密方法

8位段:杂质(随机生成)

加密方法:

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

公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)

单向加密,散列加密:提取数据特征码,常用于数据完整性校验

特性:1、雪崩效应2、定长输出

MD5:Message Digest, 128位定长输出

SHA1:Secure Hash Algorithm, 160位定长输出

非对称加密更长,速度慢,慢3个数量级(1000倍以上)

用户,组添加

useradd USERNAME

groupadd GRPNAME

用户管理:

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

组管理:

groupadd, groupdel, groupmod, gpasswd

权限管理:

chown, chgrp, chmod, umask

/etc/passwd:

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

/etc/group:

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

/etc/shadow:

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

用户管理:

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

04_01_Linux用户管理命令详解

1. useradd[options]USERNAME

-u UID

-g GID(基本组)

-G GID,...  (附加组) 一个用户可以属于多个附加组

-c "COMMENT"

-d /path/to/directory  指定家目录

-s SHELL ; /etc/shells:指定了当前系统可用的安全shell

-m  -k  创建家目录,并复制SKEL_DIR(default: /etc/skel) 下的文件到家目录

-M 不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes。

-r: 添加系统用户

/etc/login.defs  用户操作的一些选项

环境变量:

PATH

HISTSIZE

SHELL

2. userdel:

userdel [option] USERNAME

-r: 同时删除用户的家目录

3. id:查看用户的帐号属性信息

-u 显示uid

-g 显示基本组id

-G 显示附加组id

-n 显示名称,而非ID号,结合其它选项

4. finger: 查看用户帐号信息

finger USERNAME

5. usermod:修改用户帐号属性

-u UID

-g GID

-a -G GID:不使用-a选项,会覆盖此前的附加组;

-c "COMMENT"

-d -m:修改家目录,并复制原家目录下文件到新家目录下

-s :  shell

-l : 修改用户名

-L:锁定帐号

-U:解锁帐号

6. chsh: 修改用户的默认shell

7. chfn:change finger 修改更改真名和信息,注释信息

8. passwd [USERNAME]: 密码管理

--stdin  从标准输入接收密码, echo "redhat" | passwd --stdin root

-l  lock

-u unlock

-d: 删除用户密码

9. pwck:检查用户帐号完整性

组管理:

10. groupadd:创建组

-g GID

-r:添加为系统组

11. groupmod

-g GID

-n GRPNAME

12. groupdel

13. gpasswd:为组设定密码

14. newgrp GRPNAME  exit(退出临时组): 临时切换为其他基本组,这时候需要用到组密码(切换到自己的附加组不需要)

练习:

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

# groupadd -g 3003 distro

# groupadd linux

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

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

# useradd -c "Fedora Community" -s /bin/tcsh fedora

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

# usermod -u 4004 -g linux -G distro,fedora mandriva

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

# passwd -n 2 -x 50 fedora

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

usermod -s /bin/bash mandirva

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

# useradd -r -s /sbin/nologin hbase

7、

chage:修改用户密码过期时间

-d: 最近一次的修改时间

-E: 过期时间

-I:非活动时间

-m: 最短使用期限

-M: 最长使用期限

-W: 警告时间

04_02_权限及权限管理

复习:

权限管理:

r:

w:

x:

三类用户:

u: 属主

g: 属组

o: 其它用户

1. chown: 改变文件属主(只有管理员可以使用此命令)

# chown USERNAME file,...

-R: 修改目录及其内部文件的属主

--reference=/path/to/somefile file,...

chown USERNAME:GRPNAME file,...

chown USERNAME.GRPNAME file,...

2. chgrp: 改变文件属组

# chgrp GRPNAME file,...

-R:recursive

--reference=/path/to/somefile file,...

3. chmod: 修改文件的权限

修改三类用户的权限:

chmod MODE file,...

-R:recursive

--reference=/path/to/somefile file:参考某个文件设定权限

修改某类用户或某些类用户权限:

u,g,o,a

chmod 用户类别=MODE file,...

e.g: chmod go=rw,u=r /tmp/abc

修改某类用户的某位或某些位权限:

u,g,o,a

chmod 用户类别+|-MODE file,...

chmod u-x /tmp/abc

chmod u+x,g-x /tmp/abc

chmod u-rx /tmp/abc

练习:

1、新建一个没有家目录的用户openstack;

# useradd -M openstack

2、复制/etc/skel为/home/openstack;

# cp -r /etc/skel /home/openstack

3、改变/home/openstack及其内部文件的属主属组均为openstack;

# chown -R openstack:openstack /home/openstack

4、/home/openstack及其内部的文件,属组和其它用户没有任何访问权限

# chmod -R go= /home/openstack

手动添加用户hive,基本组为hive (5000),附加组为mygroup

1. 修改/etc/passwd文件,data +%s 得到19700101到当前的秒数,使用bc(bc是Linux下的计算器)把秒数除以一天的秒数86400,得到19700101到今天的天数。

2. 创建家目录、复制文件、修改文件权限

3. 修改/etc/shadow文件,使用sslpasswd可以生成加盐的加密串。

openssl passwd -1 -salt '12345678'

4. umask:遮罩码

文件:666-umask

目录:777-umask

# umask

# umask 022

文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1;

umask: 023

文件:666-023=643 X

目录:777-023=754

站在用户登录的角度来说,SHELL的类型:

登录式shell:

正常通常某终端登录

1.su - USERNAME

2.su -l USERNAME

非登录式shell:

1.su USERNAME

2. 图形终端下打开命令窗口

3. 自动执行的shell脚本

bash的配置文件:

全局配置

/etc/profile, /etc/profile.d/*.sh, /etc/bashrc

个人配置

~/.bash_profile, ~/.bashrc

profile类的文件:

设定环境变量

运行命令或脚本

bashrc类的文件:

设定本地变量

定义命令别名

登录式shell如何读取配置文件?

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何配置文件?

~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值