一、权限的基本概念                                                  

权限:访问计算机资源或服务的访问能力。

Linux中,每一个资源或者服务的权限,分别定义了三组用户的使用能力。

  • 文件的属主(u)
  • 文件的属组(g)
  • 其他用户(o)

对于每一类用户来说,可以对某个文件有三种权限:

  • r:可读,可以使用类似cat,more,less等命令查看文件内容。
  • w:可写,可以编辑或者删除此文件。
  • x:可执行,可以在命令提示符下,当做命令提交给内核运行,一般对文件默认没有此权限,否则可能执行恶意代码。

对于目录来说,

  • r:可以对此目录执行ls以列出内部的所有文件
  • w:可以在此目录中创建文件。
  • x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。

进程的安全上下文(secure context): 进程是用户发起的,是用户操作计算机的代理。进程也是有属组和属主的。谁发起的进程,进程就以谁的身份运行。比如,A和B同时执行ls命令,这两个进程属 主不同,因此获得对某文件的权限也不同,如果文件的属主刚好和进程A的属主相同,那么A就可以访问该文件,也就是说有访问权限。如下代码,drwxr-xr-x 3 root root 4096 Oct 16 20:57 m,第一个字段drwxr-xr-x中rwx为属主的权限,r-x为属组的权限,r-x为其他用户的访问权限。第三个字段便是属主,第四个字段是属组。

root@hao:~# ls -l
total 8
drwxr-xr-x root root Oct : m
drwxr-xr-x root root Oct : test

 二、权限管理                                                        

 1、chown(chage owner)改变文件属主

只有管理员才可以改变文件属主

命令格式:chown username file...更改文件的属主

     chown  username:groupname file...更改文件的属主和属组

     chown :groupname file 更改文件的属组

[hadoop@hao tmp]$ ll /tmp
total
-rw-rw-r--. hadoop hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
[root@hao ~]# chown hao /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop ?. : a.hadoop
-rw-r--r--. hadoop mygroup ?. : b.hadoop
... [root@hao ~]# mkdir /tmp/testdir
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
drwxr-xr-x. root root Nov : testdir
[root@hao ~]# chown hao /tmp/testdir
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
drwxr-xr-x. hao root Nov : testdir

命令选项:

  -R:修改目录及其内部文件的属主。不使用该选项时,只更改目录的属主,不更改目录内文件的属主。

  --reference:更改文件的属主为指定文件的属主。chown --reference =/path file...

[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
[root@hao ~]# chown --reference=/tmp/b.hadoop /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hadoop mygroup Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...

2、chgrp(change group)修改属组

使用方法同上。

3、chmod 更改文件权限

  a、修改三类用户的权限

  命令格式:chmod MODE filename...

  命令选项:

    -R:

    --reference:

  如下代码是更改test文件的三类用户权限为750即为rwxr-x---

chmod  test

  b、修改某类用户或某些类用户权限

  命令格式:chmod 用户类别=MODE filename

[root@hao ~]# ll /tmp
total
-rw-rw-r--. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod u=rw /tmp/a.hadoop
[root@hao ~]# chmod g=rw /tmp/a.hadoop
[root@hao ~]# chmod o=rw /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-rw-rw-. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod og=r,u=w /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
--w-r--r--. hadoop mygroup Nov : a.hadoop
...

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

  命令格式:chmod 用户类别+(-)MODE filename

[root@hao ~]# chmod a+r /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-r--r--. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod a-r /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
--w-------. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod u+r /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-------. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod u+r,g+x /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw---x---. hadoop mygroup Nov : a.hadoop
...

三、创建文件的默认权限                                            

创建一个文件,它的默认权限是:666-umask的前三位

创建一个目录,它的默认权限是:777-umask的前三位。 umask是遮罩码

[root@hao ~]# cd /tmp
[root@hao tmp]# touch test
[root@hao tmp]# ll test
-rw-r--r--. root root Nov : test
[root@hao tmp]# umask

[root@hao tmp]#
mkdir test1
[root@hao tmp]# ls -dl test1
drwxr-xr-x. root root Nov : test1

umask 可以直接设置用户的遮罩码 如 umask 202 则为设置当前用户的遮罩码。但是文件默认不能有执行权限,因此如果算得的结果有执行权限则会自动加1!!
该用户退出后,umask会默认恢复为初始值。

四、bash配置文件                                                    

bash的配置文件分为两种

  • 全局配置

    • /etc/profile,/etc/profile.d/*.sh,/etc/bashrc
  • 个人配置
    • ~/.bash_profile,~/.bashrc

这些文件分为两类:

  • profile类文件:

    • 设定环境变量
    • 可以设定登录时所运行的命令或脚本
  • bashrc类文件
    • 设定本地变量
    • 定义命令别名

五、shell 类型(用户角度)

从用户角度来说,shell分为两种类型:

  • 登陆式shell

    • su - username
    • su  -l username
    • 正常通过某终端登陆的shell
  • 非登录式shell

    • su username
    • 图形终端下打开命令窗口
    • 自动执行的shell脚本

登录式shell读取配置文件的顺序为:

  1、/etc/profile 2、/etc/profile.d/*.sh 3、~/.bash_profile 4、~/.bashrc 5、/etc/bashrc

非登录式shell读取配置文件的顺序为:

  1、~/.bashrc 2、/etc/bashrc 3、/etc/profile.d/*.sh

六、练习一:创建没有家目录的openstack用户             

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

[root@hao ~]# useradd -M openstack

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

[root@hao ~]# cp -r /etc/skel /home/openstack
[root@hao ~]# finger openstack
Login: openstack Name:
Directory: /home/openstack Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@hao ~]# ls /home
guang hadoop hao haohao openstack testuser testuser1
[root@hao ~]# id openstack
uid=(openstack) gid=(openstack) groups=(openstack)
[root@hao ~]# ll /home
total
...
drwxr-xr-x. root root Nov : openstack
...
[root@hao ~]#
ls -al /home/openstack
total
drwxr-xr-x. root root Nov : .
drwxr-xr-x. root root Nov : ..
-rw-r--r--. root root Nov : .bash_logout
-rw-r--r--. root root Nov : .bash_profile
-rw-r--r--. root root Nov : .bashrc
drwxr-xr-x. root root Nov : .gnome2
drwxr-xr-x. root root Nov : .mozilla

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

[root@hao ~]# chown -R openstack:openstack /home/openstack
[root@hao ~]# ls -ld /home/openstack/
drwxr-xr-x. openstack openstack Nov : /home/openstack/
[root@hao ~]#
ls -la /home/openstack/
total
drwxr-xr-x. openstack openstack Nov : .
drwxr-xr-x. root root Nov : ..
-rw-r--r--. openstack openstack Nov : .bash_logout
-rw-r--r--. openstack openstack Nov : .bash_profile
-rw-r--r--. openstack openstack Nov : .bashrc
drwxr-xr-x. openstack openstack Nov : .gnome2
drwxr-xr-x. openstack openstack Nov : .mozilla

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

[root@hao ~]# chmod -R go= /home/openstack/
[root@hao ~]#
ls -ld /home/openstack
drwx------. openstack openstack Nov : /home/openstack
[root@hao ~]# ls -la /home/openstack/
total
drwx------. openstack openstack Nov : .
drwxr-xr-x. root root Nov : ..
-rw-------. openstack openstack Nov : .bash_logout
-rw-------. openstack openstack Nov : .bash_profile
-rw-------. openstack openstack Nov : .bashrc
drwx------. openstack openstack Nov : .gnome2
drwx------. openstack openstack Nov : .mozilla

七、练习二:手动添加用户  

需求:手动添加用户hive,属主属组均为hive,UID与GID均为5000,附加组为mygroup(已存在)

1、创建组hive

[root@hao ~]# nano /etc/grou
在该文件末尾添加组hive,同时在附加组mygroup添加用户hive
mygroup:x:502:testuser1,hive
hive:x:

2、在/etc/passwd中创建用户

hive:x:::hive:/home/hive:/bin/bash

3、在/etc/shadow中创建密码,这里的16378为距离1970年1月1日经过的天数,可以算出来。

[hao@hao ~]$ date
Tue Nov :: CST
[hao@hao ~]$
date +%s

[hao@hao ~
]$ bc
bc 1.06.
Copyright -, , , , , Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
/
hive:!!:::::::

4、创建家目录并设定其属组属主为hive

[root@hao ~]# cp -r /etc/skel /home/hive
[root@hao ~]# ls /home
guang hadoop hao haohao hive openstack testuser testuser1
[root@hao ~]# chown -R hive:hive /home/hive
[root@hao ~]# ls -al /home/hive
total
drwxr-xr-x. hive hive Nov : .
drwxr-xr-x. root root Nov : ..
-rw-r--r--. hive hive Nov : .bash_logout
-rw-r--r--. hive hive Nov : .bash_profile
-rw-r--r--. hive hive Nov : .bashrc
drwxr-xr-x. hive hive Nov : .gnome2
drwxr-xr-x. hive hive Nov : .mozilla
[root@hao ~]# ls -dl /home/hive
drwxr-xr-x. hive hive Nov : /home/hive

5、修改/home/hive及其内部文件权限,使属组和其他用户没有任何访问权限

[root@hao ~]# chmod -R go= /home/hive
[root@hao ~]# ls -dl /home/hive
drwx------. hive hive Nov : /home/hive
[root@hao ~]# ls -al /home/hive
total
drwx------. hive hive Nov : .
drwxr-xr-x. root root Nov : ..
-rw-------. hive hive Nov : .bash_logout
-rw-------. hive hive Nov : .bash_profile
-rw-------. hive hive Nov : .bashrc
drwx------. hive hive Nov : .gnome2
drwx------. hive hive Nov : .mozilla

6、手动生成密码,并添加到/etc/shadow中

[root@hao ~]# openssl passwd - -salt ''
Password:
$$$2hpL/5Hu1halILqBt7TFe.
[root@hao ~]# nano /etc/shadow

最新文章

  1. my.cnf
  2. 01 Linux入门介绍
  3. InteliJ IDEA15 安装jrebel破解文件
  4. AsyncTask.cancel()的结束问题
  5. session销毁
  6. Java获取一个路径下指定后缀名的所有文件
  7. jquery ajax(3).post
  8. openStack error infos 调试
  9. PM2源码浅析
  10. npm ERR! code EINTEGRITY npm! ERR! shal-
  11. 面试为什么需要了解JVM
  12. css布局方式总结
  13. vue 组件发布记录
  14. X问题(中国剩余定理+不互质版应用)hdu1573
  15. HDU4522 湫湫系列故事——过年回家
  16. 常用Sql语句,及注意事项
  17. deb软件包安装和卸载
  18. poj 1144(割点)
  19. Southwestern Europe Regional Contest 2015 题解
  20. 【PAT】1016 部分A+B(15 分)

热门文章

  1. babel7中 preset-env 完全使用
  2. iOS 收藏的笔记
  3. 面向对象(OOP)三
  4. maven validator数据校验
  5. windows下 php集成环境如何通过cmd执行命令
  6. 跨平台移动开发phonegap/cordova 3.3全系列教程-app启动画面
  7. UVA 11404 Plalidromic Subsquence (回文子序列,LCS)
  8. 项目开发中dev、test和prod是什么意思
  9. 【BZOJ4698】[SDOI2008] Sandy的卡片(后缀数组+二分)
  10. 【转】VS2010发布、打包安装程序(超全超详细)