码迷,mamicode.com
首页 > 其他好文 > 详细

Bash环境配置和文件的特殊权限

时间:2015-09-07 07:12:05      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:bash

bash环境配置

配置文件,生效范围划分,存在两类:

    全局配置:

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

/etc/bashrc

    个人配置:

~/.bash_profile

~/.bashrc


按功能划分,存在两类:

        profile类:为交互式登录的shell提供配置

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

~/.bash_profile

功用:

(1) 定义环境变量,例如PATH、PS1

(2) 运行命令或脚本

bashrc类:为非交互式登录shell提供配置

/etc/bashrc(全局)

~/.bashrc(个人)

功用:

(1) 定义命令别名;

(2) 定义本地变量;


变量:变化的量,在内存空间中储存的数据,看变化的。变量名。

             类型:

环境变量:作用范围当前shell进程及其子进程

本地变量:作用范围当前shell进程

局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)

位置变量:$1, $2

特殊变量:$?


变量定义方式:

bash内置变量:可直接调用,内置了许多环境变量,例如PATH等

自定义变量:

变量赋值:变量名=值


bash是弱类型的编程语言:

变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用;


120:24bits

120: 8bits 


技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享



定义本地变量:

    name=value

            查看:set

技术分享



定义环境变量:

export name=value

declare -x name=value

                查看:env, printenv, export

技术分享


撤消变量:

unset name

技术分享

引用变量:

${name}, $name

技术分享

bash中的引用符号:

‘‘: 强引用,变量替换不会发生

"":弱引用

``: 命令引用

技术分享

技术分享

        shell登录类型:

交互式登录:

直接通过终端进行的登录;

通过su -l Username命令实现的用户切换;

非交互式登录:

图形界面下打开的命令行窗口;

执行脚本;

su Username;

配置文件作用次序:

交互式登录:

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


非交互式登录:

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

                针对所有用户,环境变量

技术分享     

技术分享     

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享


编辑配置文件定义的新配置如何生效?

(1) 重新登录;

(2) 让当前shell进程去重新读取指定的配置文件;

source /PATH/TO/SOMEFILE

. /PATH/TO/SOMEFILE

注意:副作用


问题:

1、定义对所有用都生效的别名?

2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作?



Linux文件系统上的特殊权限

权限模型:

u, g, o

r, w, x


进程的安全上下文:

前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;

(1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;

(2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;

(3) 进程拥有的访问权限,取决其属主的访问权限:

(a) 进程的属主,同文件属主,则应用文件属主权限;

(b) 进程的属主,属于文件的属组,则应用文件属组权限;

(c) 则应用其它权限;

技术分享

技术分享

技术分享

技术分享

SUID:

(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;

(2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID;

        权限设定:

        chmod u+s FILE... 

        chmod u-s FILE...

        注意:

        s: 属主原本拥有x权限;

        S: 属主原本无x权限;



SGID:

默认情况下,用户创建文件时,其属组为此用户所属的基本组;

一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组;

            权限设定:

chmod g+s FILE...

chmod g-s FILE...

技术分享

技术分享  

技术分享

技术分享      

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

Sticky:

对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件;


权限设定

chmod o+t FILE...

chmod o-t FILE...

技术分享      

技术分享  

技术分享

SUID, SGID, STICKY

000

001

010

011

100

101

110

chmod 4777 FILE

chmod 3755 DIR

Bash环境配置和文件的特殊权限

标签:bash

原文地址:http://youenstudy.blog.51cto.com/6722910/1692035

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!