chmod === ç¨æ¥åæ´æä»¶æç®å½çæé ## æ¦è¦ ```shell chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE... ``` ## 主è¦ç¨é - éè¿ç¬¦å·ç»åçæ¹å¼æ´æ¹ç®æ æä»¶æç®å½çæéã - éè¿å «è¿å¶æ°çæ¹å¼æ´æ¹ç®æ æä»¶æç®å½çæéã - éè¿åèæä»¶çæéæ¥æ´æ¹ç®æ æä»¶æç®å½çæéã ## åæ° modeï¼å «è¿å¶æ°æç¬¦å·ç»åã fileï¼æå®è¦æ´æ¹æéçä¸å°å¤ä¸ªæä»¶ã ## é项 ```shell -c, --changesï¼å½æä»¶çæéæ´æ¹æ¶è¾åºæä½ä¿¡æ¯ã --no-preserve-rootï¼ä¸å°'/'ç¹æ®åå¤çï¼é»è®¤é项ã --preserve-rootï¼ä¸è½å¨æ ¹ç®å½ä¸é彿ä½ã -f, --silent, --quietï¼æå¶å¤æ°éè¯¯æ¶æ¯çè¾åºã -v, --verboseï¼æ 论æä»¶æ¯å¦æ´æ¹äºæéï¼ä¸å¾è¾åºæä½ä¿¡æ¯ã --reference=RFILEï¼ä½¿ç¨åèæä»¶æåèç®å½RFILEçæéæ¥è®¾ç½®ç®æ æä»¶æç®å½çæéã -R, --recursiveï¼å¯¹ç®å½ä»¥åç®å½ä¸çæä»¶é彿§è¡æ´æ¹æéæä½ã --helpï¼æ¾ç¤ºå¸®å©ä¿¡æ¯å¹¶éåºã --versionï¼æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã ``` ## è¿åå¼ è¿åç¶æä¸ºæåé¤éç»åºäºéæ³é项æéæ³åæ°ã ## ä¾å > åè`man chmod`ææ¡£ç`DESCRIPTION`段è½å¾ç¥ï¼ > - `u`符å·ä»£è¡¨å½åç¨æ·ã > - `g`符å·ä»£è¡¨åå½åç¨æ·å¨åä¸ä¸ªç»çç¨æ·ï¼ä»¥ä¸ç®ç§°ç»ç¨æ·ã > - `o`符å·ä»£è¡¨å ¶ä»ç¨æ·ã > - `a`符å·ä»£è¡¨ææç¨æ·ã > - `r`符å·ä»£è¡¨è¯»æé以åå «è¿å¶æ°`4`ã > - `w`符å·ä»£è¡¨åæé以åå «è¿å¶æ°`2`ã > - `x`符å·ä»£è¡¨æ§è¡æé以åå «è¿å¶æ°`1`ã > - `X`符å·ä»£è¡¨å¦æç®æ æä»¶æ¯å¯æ§è¡æä»¶æç®å½ï¼å¯ç»å ¶è®¾ç½®å¯æ§è¡æéã > - `s`符å·ä»£è¡¨è®¾ç½®æésuidåsgidï¼ä½¿ç¨æéç»å`u+s`è®¾å®æä»¶çç¨æ·çIDä½ï¼`g+s`设置ç»ç¨æ·IDä½ã > - `t`符å·ä»£è¡¨åªæç®å½ææä»¶çææè æå¯ä»¥å é¤ç®å½ä¸çæä»¶ã > - `+`符å·ä»£è¡¨æ·»å ç®æ ç¨æ·ç¸åºçæéã > - `-`符å·ä»£è¡¨å é¤ç®æ ç¨æ·ç¸åºçæéã > - `=`符å·ä»£è¡¨æ·»å ç®æ ç¨æ·ç¸åºçæéï¼å 餿ªæå°çæéã ```shell linuxæä»¶çç¨æ·æé说æï¼ # æ¥çå½åç®å½ï¼å å«éèæä»¶ï¼çé¿æ ¼å¼ã ls -la -rw-r--r-- 1 user staff 651 Oct 12 12:53 .gitmodules # 第1ä½å¦ææ¯då代表ç®å½ï¼æ¯-å代表æ®éæä»¶ã # æ´å¤è¯¦æ 请åé info coreutils 'ls invocation'ï¼lså½ä»¤çinfoææ¡£ï¼ç'-l'é项é¨åã # 第2å°4ä½ä»£è¡¨å½åç¨æ·çæéã # 第5å°7ä½ä»£è¡¨ç»ç¨æ·çæéã # 第8å°10ä½ä»£è¡¨å ¶ä»ç¨æ·çæéã ``` ```shell # æ·»å ç»ç¨æ·çåæéã chmod g+w ./test.log # å é¤å ¶ä»ç¨æ·çæææéã chmod o= ./test.log # ä½¿å¾ææç¨æ·é½æ²¡æåæéã chmod a-w ./test.log # å½åç¨æ·å ·ææææéï¼ç»ç¨æ·æè¯»åæéï¼å ¶ä»ç¨æ·åªæè¯»æéã chmod u=rwx, g=rw, o=r ./test.log # çä»·çå «è¿å¶æ°è¡¨ç¤ºï¼ chmod 754 ./test.log # å°ç®å½ä»¥åç®å½ä¸çæä»¶é½è®¾ç½®ä¸ºææç¨æ·æ¥æè¯»åæéã # 注æï¼ä½¿ç¨'-R'é项ä¸å®è¦ä¿çå½åç¨æ·çæ§è¡å读åæéï¼å¦å伿¥éï¼ chmod -R a=rw ./testdir/ # æ ¹æ®å ¶ä»æä»¶çæé设置æä»¶æéã chmod --reference=./1.log ./test.log ``` ### 注æ 1. 该å½ä»¤æ¯`GNU coreutils`å ä¸çå½ä»¤ï¼ç¸å ³ç帮å©ä¿¡æ¯è¯·æ¥ç`man chmod`æ`info coreutils 'chmod invocation'`ã 2. 符å·è¿æ¥çæéæ æ³åæ´ï¼å¦æç¨æ·å¯¹ç¬¦å·è¿æ¥ä¿®æ¹æéï¼å ¶æ¹åä¼ä½ç¨å¨è¢«è¿æ¥çåå§æä»¶ã 3. 使ç¨`-R`é项ä¸å®è¦ä¿çå½åç¨æ·çæ§è¡å读åæéï¼å¦å伿¥éï¼