8-30 Bash环境配置和linux上的特殊权限说明

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...

练习:
  1、让普通用户能使用/tmp/cat去查看/etc/shadow文件;
  2、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;

时间: 2024-10-12 23:21:46

8-30 Bash环境配置和linux上的特殊权限说明的相关文章

Vim编辑器,find命令及bash环境配置

1.总结文本编辑工具vim的使用方法: 全屏幕的编辑器:VIM vi: visual interface sed:行编辑器 vi, vi iMproved vim: 模式化: 编辑模式:命令模式 输入模式: 末行模式: 编辑模式 --> 输入模式: i: insert, a:append, o:new line, I: 行首 A:行尾 O:上方新建行 输入模式 --> 编辑模式: ESC 编辑模式 --> 末行模式: : 末行模式 --> 编辑模式 ESC 打开vim: # vim

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类:为非交互式

bash环境配置

bash环境配置:         配置文件,生效范围划分,存在两类:         全局配置:             /etc/profile, /etc/profile.d/*.sh             /etc/bashrc         个人配置:             ~/.bash_profile             ~/.bashrc 按功能划分,存在两类:         profile类:为交互式登录的shell提供配置             /etc/pro

egrep、bash环境配置及脚本、vim编辑器

egrep及扩展的正则表达式 egrep = grep -E egrep [options] pattern [file..] 扩展正则表达式的元字符字符匹配.:匹配任意单个字符[[email protected] ~]# grep -E . /tmp/123ABC123boy []:匹配指定范围内的单个字符[[email protected] ~]# grep -E [abc] /tmp/123boyabc [^]:匹配指定范围外的单个字符[[email protected] ~]# grep

6 Linux之bash环境配置

每日一句=.=!:抱怨只是无能的表现,无它! 故,尽量避免过多与整天在抱怨的人接触. 怪不得马哥那么接地气儿,满满的都是正能量 bash配置文件分类 profile类:交互式登录相关配置 /etc/profile /etc/profile.d/*.sh 对所有用户都有效 ~/.bash_profile 位于用户家目录,故只对对用户自己有效 作用: 定义环境变量 运行脚本或命令, bashrc类:非交互式登录相关配置 /etc/bashrc 对所有用户有效 ~/.bash_bashrc 同样位于家

.net项目架构改造之搭建基于java环境配置一览【上】

最近公司做了一个项目,需要嵌套在千牛的客户端上,项目代码必须上阿里的聚石塔,全程采用基于docker的自动化部署,我们的项目是基于.net架构.很遗憾 的是基于windows的docker上部署在访问淘宝自身的api接口,总是会时不时的各种超时,阿里小二也整个一个星期没解决,给出的理由很简单,基于windows的docker 的服务也才引入不久,还有稳定性问题. 在选择docker镜像时把自己技术的tomcat顶的高高在上,卧槽,双重1w点暴击,预计.net架构用在这上面后面会有各种坑... 改

bash 环境配置及脚本

bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls -la *sh 一. bash shell的配置变量可分为自定义变量和环境变量他们作用范围不同set 可以查看所有变量set|more 查看 enter一行一行查看set|less enter换行 pagedown换页 q退出 env只能查看环境变量 bash shell的设置方式1.通过自定义变

环境安装系列 - Linux上搭建简易Git服务01

这篇文章主要讲述简易的GIT服务器环境搭建,环境是CentOS.authorized_keys 1. 安装GIT 这边比较简单的方法就是通过yum的方式安装 sudo yum install git 2. 创建一个git用户 useradd git -d /home/git passwd git /home/git为服务端版本存储的目录地址.这个时候就可以通过git这个账号,登录服务器了. 3. 添加公钥,SSH免登 首先,我们需要在本地生成公钥.生成的命令如下: ssh-keygen -t r

Xcode5 + phoneGap2.9搭建ios开发环境-配置-测试-归档上传/phoneG...

前言: 小弟是做JAVA/Android的第一次搞这个ios,公司有mobile项目是使用phoneGap开发的,需要开发ios版本.什么都不会只能一点一点琢磨了……大神越过…… 原文链接:http://my.oschina.net/jgy/blog/168745 下载phoneGap2.9和安装Xcode5(目前最新版) 使用phoneGap/create命令创建项目 ? 1 ./create /Users/jiagaoyang/Documents/Workspace/Xcode/iphone