1 权限
1 权限是操作系统用来限制对资源的访问的机制,权限一般分为三种,读,写,执行。操作系统中每一个文件都有特定的权限,所属的用户和所属的组,通过的这样的机制来限制哪些用户,哪些组可以对特定的文件进行什么样的操作
2 每一个进程都是以某个用户的身份登录运行,所以进程的权限与该用户的权限一样,用户的权限大,该进程拥有的权限就大
3 文件权限
权限 对文件的影响 对目录的影响
r 读取 可读取文件内容 可列出目录的内容
w 写入 可以修改文件内容 可在目录中创建删除目录
x 执行 可以作为命令执行 可访问目录内容
4 UGO机制
1 Linux是基于UGO的模型进行控制
2 U代表user ,G代表Group,O代表Other
3 每一个文件的权限基于UGO进行设置
4 权限三个为一组(rwx),对应UGO分别设置
5 每一个文件拥有一个所属的用户和所属的组,对应UG,不属于该文件的用户或组使用O权限
6 通过命令ls -l可以列出当前目录下的文件的详细的信息
7 对于UGO的详解
5 修改文件所属用户和组(文件或者文件夹)
1 修改所属用户
chown 用户名 文件名 , 我们可以加-R来递归的把该目录下的所有的文件所属用户改为新的用户名
2 修改所属的组
chgrp 组名 文件名 , 我们可以加-R来递归的把该目录下的所有的文件所属组改为新的组
6 修改权限(文件或者文件夹)
1 命令chmod用以修改文件的权限 chmod 模式 文件
2 模式有以下格式
1 u g o分别代表用户,组和其它
2 a可以用来指ugo
3 +,-代表加入和删除该权限
4 r w x表示三种权限
5 模式例子
1 chmod u+rw test 把test所属用户加入rw权限
2 chmod g-x test 把test所属组减去x权限
3 chmod go+r test 把test所属的组和其他加上r权限
4 chmod a-x test 把test属的用户,组,其它减去x权限
3 我们可以使用加-R来递归的修改该目录下的所有文件的权限
4 我们也可以使用数字的方式来修改权限,但是以数字方式修改的话必须把ugo三个同时修改
1 r = 4 , w = 2 , x = 1
2 每组的权限为数字之和 rw = 4+2 = 6 , rwx = 4+2+1 = 7
3 模式样例
chmod 660 test 等同于修改为u的权限为rw,g的权限为rw,o没有权限(0代表没有权限)
1 默认权限
1 每一个终端都有一个umask权限来确定新建文件和新建文件夹的默认权限
2 umask使用数字权限来表示,比如022
3 目录的默认权限是777-umask,文件的默认权限是666-umask
4 普通用户的umask是0002,root用户的umask是022
5 那么新建文件的权限为666-0002 = 664 => rw-rw-r--
比如我在家目录下创建一个新的文件名叫LinuxCast.net
那么新建文件夹(目录)的权限为777-0002 = 775 => rwxrwxr-x
比如我在家目录下创建一个新的文件夹Linux
6 使用umask来设置终端的umask值
2 特殊权限
1 除了普通权限外还有三种特殊的权限
2 权限 对文件的影响 对目录的影响
suid 以文件所属用户身份执行 无
而非执行文件的用户
sgid 以文件所属组身份运行 在该目录中创建新文件的所属组和该目录相同
sticky 无 对目录拥有写入权限的用户可以删除其拥有的文件
但是不能删除其它用户的所拥有的文件
3 设置特殊权限
1 设置suid
chmod u+s 文件名
2 设置sgid
chmod g+s 文件名
3 设置sticky
chmod o+t 文件名
4 和普通权限一样特殊权限也可以利用数字来表示
suid = 4
grid = 2
sticky = 1
本文对 通过命令行进行 git 操作做简单 总结。
建立git
1.登录github官网完成注册。并下载git客户端。
2.为本机配置 git的用户名和 密码。
Username
First you need to tell git your name, so that it can properly label the commits you make.
git config --global user.name "Your Name Here" # Sets the default name for git to use when you commit
Email
Git saves your email address into the commits you make. We use the email address to associate your commits with your GitHub account.
git config --global user.email "your_email@example.com" # Sets the default email for git to use when you commit 创建仓库 repository 1. 在github官网 创建 reponsitory -- hello-world 2. 本地建立相应文件夹mkdir ~/Hello-World # Creates a directory for your project called "Hello-World" in your user directory cd ~/Hello-World # Changes the current working directory to your newly created directory git init # Sets up the necessary Git files # Initialized empty Git repository in /Users/you/Hello-World/.git/ touch README # Creates a file called "README" in your Hello-World directory 打开README 写入文本"hello,world" 3.commitgit add README # Stages your README file, adding it to the list of files to be committed git commit -m 'first commit' # Commits your files, adding the message "first commit"
此时完成了本地的 索引加载与提交,并未与 github 有任何联系,下面完成与 github的数据更新
4. push
首先在远端 建立一个连接,然后推送你的提交git remote add origin https://github.com/username/Hello-World.git # Creates a remote named "origin" pointing at your GitHub repository git push origin master # Sends your commits in the "master" branch to GitHub
以上为官网的做法,存在问题。
问题一:error: The requested URL returned error: 403.... fatal: remote re-origin already exists.
原因 git目前 http支持的不太好,或者说暂时不能用(个人不确定阿)。
解决方法:改用 ssh方法 来连接。git remote add re-origin git@github.com:usrname/Hello-World.git
问题二:
error: failed to push some refs to...Merge the remote changes before pushing again.
应先远端获取最新版本,然后提交,防止冲突git pull origin mastergit commit -am "update .."git push origin master
此时打开 github相应 仓库 即可开到上传的文件。
参考此处 create a reponsitory