感悟生活,感受茶文化

发布新日志

  • FC10中安装tomcat Administration Web Application

    2008-12-06 20:58:08

    linux安装来tomcat,需要安装配置tomcat的administration模块。方法如下:
    1,在http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.25/bin/下载
    apache-tomcat-5.5.25-admin.tar.gz

    2,下载后解压,解压后会生成名为apache-tomcat-5.5.25的目录
    tar -zxvf apache-tomcat-5.5.25-admin.tar.gz

    3,将apache-tomcat-5.5.25下server/webapps目录中的admin整个目录拷贝到tomcat的/server/webapps目录下
    [root@ldbfc webapps]# cp -rp admin/ /opt/tomcat/server/webapps/

    4,将apache-tomcat-5.5.25下conf/Catalina/localhost目录中的admin.xml拷贝到tomcat的/conf/Catalina/localhost目录下
    [root@ldbfc localhost]# cp -rp admin.xml /opt/tomcat/conf/Catalina/localhost/

    5,编辑tomcat中conf目录下的tomcat-users.xml文件:
    [root@ldbfc conf]# vi tomcat-users.xml
    在该文件中添加一行: <user username="admin" password="admin" roles="admin,manager"/>
    添加后的文件内容如下:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="tomcat"/>
    <role rolename="role1"/>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="tomcat" password="tomcat" roles="tomcat"/>
    <user username="role1" password="tomcat" roles="role1"/>
    <user username="both" password="tomcat" roles="tomcat,role1"/>
    <user username="admin" password="admin" roles="admin,manager"/>
    </tomcat-users>

    添加后保存并退出。

    6,重启tomcat,再次打开页面即可输入admin,admin进入管理页面。
  • mac中配置ati 7500显卡

    2008-11-21 22:10:33

    英文原版:
    ATI Radeon Mobility 7500 Driver Pack

    These are the files currently known to work with the Radeon Mobility 7500 Video Card. These files are not guaranteed to work with anything else.

    *USE AT YOUR OWN RISK!*

    I do not accept responsibility for anything these files do to your machine. That is your responsibility.

    File List:

    ATIRadeon.kext
    ATIRadeonGA.plugin
    ATINRDV.kext
    ATIRadeonGLDriver.bundle
    ATIRadeonDVDDriver.bundle
    AGPGart.kext
    Callisto.kext
    CallistoHAL.kext
    OpenGL.framework
    Quartz Extreme Check.app

    Instructions:

    1. Run the Installer Package. Do NOT reboot yet.
    2. Open Terminal and enter in the following

    ioreg -l

    1. Locate AGP in the output. It will most likely be listed as AGP@1, but your machine may differ. You will see "compatible" =  <"pcixxxx,xxxx","pciclass,xxxxxx">

    The first set is the item you should note.
    Enter the following at Terminal:

    sudo nano /System/Library/Extensions/AGPGart.kext

    Locate:

                <key>IONameMatch</key>
                <array>
                    <string>pci8086,2561</string>
                </array>

    Change this to reflect the information you got above.

    cntrl-o, enter, cntrl-x

    Now enter the following at the Terminal prompt:

    sudo chown -R root:wheel /System/Library/Extensions/AGPGart.kext
    sudo chmod -R 755 /System/Library/Extensions/AGPGart.kext

    Now enter the following at the Terminal:

    sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

    Add the following in the middle somewhere after the Kernel key, but before a Quiet Boot or Boot Graphics key.

            <key>Kernel Flags</key>
            <string>-f</string>

    cntrl-o, enter, cntrl-x

    Now open Disk Utility to be safe (this stepp is not required, but highly recommended) and run Repair Permissions on your disk.

    Reboot and pray.

    Thanks to omni, jobo10 and all the others who created their parts of this driver pack. Also thanks to those in the OSx86 Community who helped work on this card over the past year.

    中文翻译:


    1、Run the Installer Package. Do NOT reboot yet.
    运行ati安装包,完成后别重启

    2、Open Terminal and enter in the following
    打开终端,输入下面的命令:

    ioreg -l


    3、定位输出文件中的AGP@1,在此段下面有"compatible" =  <"pcixxxx,xxxx","pciclass,xxxxxx">的语句,记住其中第二个xxxx,比如t40中的ati是pci8086,3341


    4、在终端中输入


    sudo vim /System/Library/Extensions/AGPGart.kext/Contents/Info.plist

    然后定位到下面位置:
                <key>IONameMatch</key>
                <array>
                    <string>pci8086,2561</string>
                </array>

    将此处的pci信息改为之前找到的,比如改为pci8086,3341

    退出vim编辑模式,输入:wq保存并退出。

    5、在终端中输入下面命令,修改相应文件夹的操作权限

    sudo chown -R root:wheel /System/Library/Extensions/AGPGart.kext
    sudo chmod -R 755 /System/Library/Extensions/AGPGart.kext

    6、在终端中输入下面命令
    sudo vim /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
    增加下面的内容

            <key>Kernel Flags</key>
            <string>-f</string>
    然后保存退出。

    7、打开磁盘管理,选择mac的安装分区,点击修复权限,完成后重启机器。


    网上有其他的中文说明,个人按照那个方法后不成功,所以,还是看英文原版的好。

  • T40安装mac

    2008-11-21 14:12:40

    玩了一段时间的ubuntu,决定还是等申请地光盘寄到了再装。闲来无事,安装了pc版的mac,感觉不错,呵呵。
    怕以后忘记怎么装了,写下,留个纪念。
    一时的想法,跑中关村花5块钱买了个盘,结果不能装,大骗子,还是个小姑娘。没法,一天三夜,下载了10.4.8,听说是史上最稳定的pc版mac。下载后采用4x速刻盘。确保刻盘成功。然后开始安装。安装步骤如下:
    1、参考http://www.51nb.com/forum/viewthread.php?tid=544249这个帖子即可完成。

    2、安装后无法进入xp,只能进入mac,找了很多方法,不管用。来招狠的。因为想使用xp与mac双系统,故得设置启动文件,可现在进不了xp,没招,用装机盘,也就是带ghost的启动盘,恢复xp,然后再修改boot.ini文件,加入mac的启动项,同时需使用tboot文件。这样就可以实现双系统了。我的分区是这样的,c盘装xp,g盘装mac,网上说什么激活不激活的,还搞什么两个主分区,说的太玄乎,太复杂。我的苹果目前运行很好。没什么后遗症。所以,实践最好。看多了反而容易迷失方向。附图,留作纪念,改天再搞搞其他系统。
  • 迷上Ubuntu!

    2008-09-08 20:50:56

    呵呵,最近迷上了ubuntu,漂亮的界面,全面的功能,学习娱乐两不误,上图,大家欣赏!
  • FC5中配置TOMCAT+JDK

    2008-01-24 21:35:58

    避免忘记配置方式,记录下来:

    安装好FC5后,配置好网络,下载好必备软件:jdk-1_5_0_06-linux-i586.bin ,apache-tomcat-5.5.25.tar.gz

    一、JDK安装

    1、通过ssh将JDK上传到FC5的/opt目录下;

    2、 #chmod 755 jdk-1_5_0_06-linux-i586.bin  (root帐号登录,修改jdk文件执行权限)

    3、 # ls –l  (检查权限是否更改正确)

    4、 #./jdk-1_5_0_06-linux-i586.bin  (解压安装文件)

    5、# cd /opt   (检查解压是否成功,如成功应有jdk1.5.0_06目录)

       # mv jdk1.5.0_06 jdk  (将jdk1.5.0_06重命名为jdk)

    6、# cd /root   (退到root目录下,为root)

    7、# vi .bashrc (编辑bashrc文件)添加下面信息:
       export JAVA_HOME=/opt/jdk (实际jdk解压安装路径)
       export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH  (必须将$PATH放在后面,否则无法改变FC5自带的jdk1.4的版本)
       export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
       退出vi编辑模式,输入:wq保存,
       # source .bashrc

    8、如果为所有用户设定环境变量,则进行如下操作:
    在etc/profile.d文件夹下建立java.sh文件内容如下
    # vi java.sh
    export JAVA_HOME=/opt/jdk
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    #source /etc/profile.d/java.sh
    # java 看是否有java的帮助提示
    # java -version

    如果跟你安装的版本相符合的话,那就成功了,

    9、测试安装是否成功:
    # vi /home/HelloWorld.java  (在home目录下创建HelloWorld.java文件),代码如下:
     public class HelloWorld {
     public static void main(String args[])
       {
       System.out.println("JAVA OK!") ;
      }
    }

    [root@localhost home]# javac HelloWorld.java
    [root@localhost home]# java HelloWorld
    JAVA OK!

    至此,JDK安装完毕!

    二、TOMCAT安装

    1、通过ssh将JDK上传到FC5的/opt目录下;

    2、# tar -zvxf apache-tomcat-5.5.25.tar.gz

    3、# ls   (检查解压是否成功)

    4、# mv apache-tomcat-5.5.25 tomcat  (将apache-tomcat-5.5.25重命名为tomcat)

    5、# userdel tomcat  (删除系统中已有的tomcat用户)

    6、# useradd tomcat   (增加tomcat用户)

    7、# passwd tomcat  (设置密码)

    8、#  vi /etc/profile.d/java.sh
    # set java environment
    # jdk environment
    export JAVA_HOME=/opt/jdk
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    #tomcat environment
    export CATALINA_BASE=/opt/tomcat
    export CATALINA_HOME=/opt/tomcat
    最后的结果如上所示。
    检查一下环境变量是否正确:
    [root@localhost profile.d]# source java.sh
    [root@localhost profile.d]# echo $JAVA_HOME
    /opt/jdk
    [root@localhost profile.d]# echo $CATALINA_HOME
    /opt/tomcat
    如果显示都正确的话,则环境变量设置OK。

    9、  #vi /root/tomcat.sh   (创建tomcat启动文件)
    # tomcat start file
    SROOT=/opt/tomcat
    TOMCAT_OWNER=tomcat
    case "$1" in

            start)

            su - $TOMCAT_OWNER -c "$SROOT/bin/startup.sh"
            ;;
            stop)
            su - $TOMCAT_OWNER -c "$SROOT/bin/shutdown.sh"
            ;;
            *)
            echo 'Usage:resin {start|stop}';;
    esac
    exit 0

    10、#chmod 755 /root/tomcat.sh (修改tomcat.sh执行权限)

    11、# chgrp –R tomcat /opt/ tomcat/       # chown –R tomcat /opt/tomcat/  (修改tomcat用户对/opt/tomcat执行权限)

    12、 # ./tomcat.sh start (root用户在root目录下执行该命令,启动tomcat)

    #  ./tomcat.sh stop  (root用户停止tomcat服务)

    当然也可用tomcat用户启动服务,需进入/opt/tomcat/bin执行./startup.sh 或./shutdown.sh

    13、验证结果:在xp系统上访问http://192.168.0.104:8080,其中192.168.0.104为FC5系统的ip地址,如果能够出现tomcat的首页。

    也可编写一个简单的jsp放在/opt/tomcat/webapps下,验证能否访问。

     

  • RedHat9,Fedora Core5中安装VMware tools

    2008-01-24 16:01:53

    因学习需要,在VMware中安装了redhat与fc5,装完后发现界面不太美观,而且鼠标移动有拖影现象,于是考虑安装vmware tools,搞了两天才弄好,写下,记下,免得日后再忘记。

    软件版本:vmware workstation 5.5.3 build-34685 (多特有下载)

    RedHat: 9.0

    Fedora Core:5

    Redhat:

    在redhat下安装比较简单,VMware虚拟机的菜单中点击:虚拟机->安装VMware 工具->install,然后进入文本界面(在redhat图形界面中按ctrl+shift+alt+F1),执行下列命令

    1、mount /dev/cdrom /mnt/   (挂在光驱,也就是获得vmware tools安装文件)2、

    2、tar -C /tmp -zxvf /mnt/VMwareTools-5.5.1-19175.tar.gz   (将vmware tools解压到/tmp目录下)

    3、umount /mnt   (卸载虚拟光驱)

    4、cd /tmp/vmware-tools-distrib    (进入vmware tools目录)

    5、./vmware-install.pl    (安装,一路回车,最后可能让你选分辨率什么的,选3,1024×768)

    6、reboot   (重启搞定!)

    注:文本界面进入图形界面按alt+F7。

    FC5:

    fc5的vmware tools安装比较麻烦,涉及到内核的问题,所以复杂一点,查了一下网上的资料,好半天才搞定。方法如下:

    1、yum install gcc kernel-devel   (安装内核以及gcc)

    2、uname -r             (运行内核,查看内核版本)

    3、rpm -q kernel-devel  (查看内核头文件)

    4、yum -y upgrade kernel kernel-devel  (假如内核与内核头文件的版本不一致,则需运行此命令)

    5、reboot  (安装完毕后,重启)

    6、ls -d /usr/src/kernels/$(uname -r)*/include(查看一下头文件位置,安装vmware tools时需要)

    7、mount /dev/cdrom /mnt/   (挂在光驱,也就是获得vmware tools安装文件)2、

    8、tar -C /tmp -zxvf /mnt/VMwareTools-5.5.1-19175.tar.gz   (将vmware tools解压到/tmp目录下)

    9、umount /mnt   (卸载虚拟光驱)

    10、cd /tmp/vmware-tools-distrib    (进入vmware tools目录)

    11、./vmware-install.pl    (安装,一路回车,最后可能让你选分辨率什么的,选3,1024×768)

    12、reboot   (重启搞定!)

    注:fc5必须连上网络,否则无法安装。

    以上是安装过程,整合了网上朋友的方法:

    参考贴如下:

    http://www.thoughtpolice.co.uk/vmware/howto/fedora-core-5-vmware-tools-install.html

  • linux权限管理

    2007-03-07 16:20:45

    配置cvs服务器,一直对linux下用户权限管理有点迷糊,今天看了这篇文章,突然弄明白了如何设置权限。

    转文章

    linux文件属性 chown chgrp用法

                                          

    Linux 檔案屬性


    嗯!既然要讓你瞭解 Linux 的檔案屬性,那麼有個重要的也是常用的指令就必須要先跟你說囉!那一個?!就是『 ls 』這一個 list 檔案的指令囉!在你以 root 的身份登入 Linux 之後,下達『ls -al 』看看,會看到底下的幾個咚咚:
    [root@linux ~]# ls -al
    total 248
    drwxr-x---   9   root    root    4096    Jul 11 14:58    .
    drwxr-xr-x  24   root    root    4096    Jul  9 17:25    ..
    -rw-------   1   root    root    1491    Jun 25 08:53    anaconda-ks.cfg
    -rw-------   1   root    root   13823    Jul 10 23:12    .bash_history
    -rw-r--r--   1   root    root      24    Dec  4  2004    .bash_logout
    -rw-r--r--   1   root    root     191    Dec  4  2004    .bash_profile
    -rw-r--r--   1   root    root     395    Jul  4 11:45    .bashrc
    -rw-r--r--   1   root    root     100    Dec  4  2004    .cshrc
    drwx------   3   root    root    4096    Jun 25 08:35    .ssh
    -rw-r--r--   1   root    root   68495    Jun 25 08:53    install.log
    -rw-r--r--   1   root    root    5976    Jun 25 08:53    install.log.syslog
    [    1   ][ 2  ][  3   ][  4 ][    5   ][      6     ][       7          ][  屬性  ][連結][擁有者][群組][檔案容量][  修改日期  ][      檔名        ]

    ls 是『list』的意思,與在早期的 DOS 年代的指令 dir 類似功能。 而參數『-al』則表示列出所有的檔案 ( 包含隱藏檔,就是檔名前面第一個字元為 . 的那種檔案 ) 。如上所示,在你第一次以 root 身份登入 Linux 時,如果你輸入指令後,應該有上列的幾個東西, 先解釋一下上面七個欄位個別的意思:



    圖二、檔案屬性的示意圖


    第一欄代表這個檔案的屬性: 這個地方最需要注意了!仔細看的話,你應該可以發現這一欄其實共有十個屬性:


    圖三、檔案的十個屬性內容


    第一個屬性代表這個檔案是『目錄、檔案或連結檔等等』:
    當為[ d ]則是目錄,例如上表的第 11 行;
    當為[ - ]則是檔案,例如上表的第 5 行;
    若是[ l ]則表示為連結檔(link file);
    若是[ b ]則表示為裝置檔裡面的可供儲存的周邊設備;
    若是[ c ]則表示為裝置檔裡面的序列埠設備,例如鍵盤、滑鼠。


    接下來的屬性中,三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(excute):
    第一組為『擁有人的權限』,以第 5 行為例,該檔案的擁有人可以讀寫,但不可執行;
    第二組為『同群組的權限』;
    第三組為『其他非本群組的權限』。

    範例:若有一個檔案的屬性為『-rwxr-xr--』,簡單的可由下面說明之:

    [-][rwx][r-x][r--]
    1  234  567  890
         1 為:代表這個檔名為目錄或檔案(上面為檔案)
        234為:擁有人的權限(上面為可讀、可寫、可執行)
        567為:同群組使用者權限(上面為可讀可執行)
        890為:其他使用者權限(上面為僅可讀)
    上面的屬性情況代表一個檔案、這個檔案的擁有人可讀可寫可執行、但同群組的人僅可讀與執行, 非同群組的使用者僅可讀的意思!

    除此之外,需要特別留意的是 x 這個標號! 若檔名為一個目錄的時候,例如上表中的 .ssh 這個目錄:

    drwx------   3   root    root    4096    Jun 25 08:35    .ssh



    可以看到這是一個目錄,而且只有 root 可以讀寫與執行。但是若為底下的樣式時,請問非 root 的其他人是否可以進入該目錄呢?

    drwxr--r--   3   root    root    4096    Jun 25 08:35    .ssh



    咦!似乎好像是可以喔!因為有可讀[ r ]存在嘛!『錯!』答案是非 root 這個帳號的其他使用者均不可進入 .ssh 這個目錄,為什麼呢? 因為 x 與 目錄 的關係相當的重要, 如果您在該目錄底下不能執行任何指令的話,那麼自然也就無法進入了,因此, 請特別留意的是,如果您想要開放某個目錄讓一些人進來的話, 請記得將該目錄的 x 屬性給開放呦!至於目錄的權限相關說明, 我們會在底下繼續介紹的。

    另外,你也必須要更加的小心的是,在 Windows 底下一個檔案是否具有執行的能力是藉由『 附檔名 』來判斷的, 例如:.exe, .bat, .com 等等,但是在 Linux 底下, 我們的檔案是否能執行,則是藉由是否具有 x 這個屬性來決定的!所以,跟檔名是沒有絕對的關係的! 這點還請特別留意呢!稍後我們還會針對目錄來稍作說明的

    2.     第二欄表示為連結佔用的節點 (i-node): 這個跟連結檔 (link file) 比較有關係,我們在未來的章節會再加以介紹的。 如果是目錄的話,那麼就與該目錄下還有多少目錄有關。

    3.     第三欄表示這個檔案(或目錄)的『擁有人』。

    4.     第四欄表示擁有人的群組。
    這裡再次解釋一下,在 Linux 中,你的 ID ( 如 root 或 test 等帳號均是所謂的 ID ) 即是你的身份,而且你還可以附屬在一個或多個群組之下,例如剛剛我們上面提到的,你有一個團體 ( 即群組 ) 代號為 testgroup ,且這個群體裡有三個人,其代號分別是 test1, test2, 與 test3,則這三個人為同一群組即 testgroup!那麼如果以上圖的的檔案屬性(-rwxrwx---) 來看,如果該檔案屬於 test1 所有,那麼 test2, test3 亦有讀、寫、執行的權力,因為他們都屬於同一個 group 呀!而如果您不是屬於 test1, test2, test3 的任何一個人,也不屬於 testgroup 這個群組時,那麼您將不具備讀、寫、執行這個檔案的權限了!

    5.     第五欄為這個檔案的容量大小。

    6.     第六欄為這個檔案的建檔日期或者是最近的修改日期, 分別為月份、日期及時間。請特別留意,如果您是以繁體中文來進行安裝您的 Linux 時,那麼預設的語系可能會被改為中文。而 由於中文無法顯示在文字型態的終端機上面, 所以這一欄會成為怪怪的亂碼,這個時候,請修改一下 /etc/sysconfig/i18n 這個檔案,裡面的『 LC_TIME 』修改為:『 LC_TIME=en 』再儲存離開,再登入一次,就可以得到英文字形顯示的日期了! 那麼如何修改該檔案呢?呵呵!以 root 身份用 vi 修改。 另外,也可以使用『 LANG=en ls -al 』之類的語法來顯示。

    7.     第七欄為這個檔案的檔名, 如果檔名之前多一個『 . 』,則代表這個檔案為『隱藏檔』, 例如上表第 6 行的『.bashrc_history』檔名即是隱藏檔,由於我們有下一個參數為 ls -al,所以連隱藏檔都列出來,如果你只輸入 ls 則檔名有加『 . 』的檔案就不會被顯示出來!

    如何改變檔案權限

    好了,我們已經知道檔案權限對於一個系統的安全重要性了,也知道檔案的權限對於使用者與群組的相關性了, 好了,那麼如何修改一個檔案的權限呢?又!有多少檔案的權限我們可以修改呢? 其實一個檔案的權限很多嘛!大致上我們先介紹幾個簡單的,例如:群組、擁有者、各種身份的權限等等。

    chgrp :改變檔案所屬群組
    chown :改變檔案所屬人
    chmod :改變檔案的屬性、 SUID 、等等的特性

    --------------------------------------------------------------------------------

    ·  改變所屬群組, chgrp

    改變一個檔案的群組真是很簡單的,直接以 chgrp 來改變即可,咦!這個指令就是 change group 的縮寫嘛!對啦!這樣就很好記了吧! ^_^。不過,請記得, 要改變成為的群組名稱必須要在 /etc/group 裡面存在的名稱才行,否則就會顯示錯誤!

    假設您是以 root 的身份登入 FC4 ,那麼在您的家目錄內有一個 install.log 的檔案, 如何將該檔案的群組改變一下呢?假設您已經知道在 /etc/group 裡面已經存在一個名為 users 的群組,但是 testing 這個群組名字就不存在 /etc/group 當中了, 此時改變群組成為 users 與 testing 會有什麼現象發生呢?

    [root@linux ~]# chgrp [-R] dirname/filename ...
    參數:
    -R : 進行遞迴( recursive )的持續變更,亦即連同次目錄下的所有檔案、目錄
         都更新成為這個群組之意。常常用在變更某一目錄的情況。
    範例:
    [root@linux ~]# chgrp users install.log
    [root@linux ~]# ls -l
    -rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
    [root@linux ~]# chgrp testing install.log
    chgrp: invalid group name `testing' <== 發生錯誤訊息囉~找不到這個群組名~


    發現了嗎?檔案的群組被改成 users 了,但是要改成 testing 的時候, 就會發生錯誤~注意喔!發生錯誤訊息還是要努力的查一查錯誤訊息的內容才好!


    --------------------------------------------------------------------------------

    ·  改變檔案擁有者, chown

    好了,那麼如何改變一個檔案的擁有者呢?很簡單呀!既然改變群組是 change group ,那麼改變擁有者就是 change owner 囉!BINGO,對啦!那就是 chown 這個指令的用途,要注意的是,使用者必須是已經存在系統中的,也就是在 /etc/passwd 這個檔案中有紀錄的使用者名稱才行改變。

    chown 的用途還滿多的,他還可以順便直接修改群組的名稱呢!此外, 如果要連目錄下的所有次目錄或檔案同時更改檔案擁有者的話,直接加上 -R 的參數即可!我們來看看語法與範例:

    [root@linux ~]# chown [-R] 帳號名稱 檔案或目錄
    [root@linux ~]# chown [-R] 帳號名稱:群組名稱 檔案或目錄
    參數:
    -R : 進行遞迴( recursive )的持續變更,亦即連同次目錄下的所有檔案、目錄
         都更新成為這個群組之意。常常用在變更某一目錄的情況。
    範例:
    [root@linux ~]# chown bin install.log
    [root@linux ~]# ls -l
    -rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
    [root@linux ~]# chown root:root install.log
    [root@linux ~]# ls -l
    -rw-r--r--  1 root root 68495 Jun 25 08:53 install.log


    嗯!知道如何改變檔案的群組與擁有者了,那麼什麼時候要使用 chown 或 chgrp 呢?!或許您會覺得奇怪吧?!是的,確實有時候需要變更檔案的擁有者的, 最常見的例子就是在 copy 檔案給你之外的其他人時,假設您今天要將 .bashrc 這個檔案拷貝成為 .bashrc_test ,且是要給 bin 這個人,您可以這樣做:

    [root@linux ~]# cp .bashrc .bashrc_test
    [root@linux ~]# ls -al .bashrc*
    -rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
    -rw-r--r--  1 root root 395 Jul 13 11:31 .bashrc_test


    哇!怎麼辦? .bashrc_test 還是屬於 root 所有,如此一來,即使你將檔案拿給 bin 這個使用者了,那他仍然無法修改的( 看屬性就知道了吧! ), 所以你就必須要將這個檔案的擁有者與群組修改一下囉!知道如何修改了吧!?呵呵!


    --------------------------------------------------------------------------------

    ·  改變九個屬性, chmod

    檔案屬性的改變使用的是 chmod 這個指令,但是,屬性的設定方法有兩種, 分別可以使用數字或者是符號來進行屬性的變更。我們就來談一談:

    ·  數字類型改變檔案權限

    Linux 檔案的基本屬性就有九個,分別是 owner/group/others 組別的 read/write/excute 屬性, 先複習一下剛剛上面提到的資料:

    -rwxrwxrwx

    這九個屬性是三個三個一組的!其中,我們可以使用數字來代表各個屬性,各屬性的對照表如下:

    r:4
    w:2
    x:1

    同一組 (owner/group/others) 的三個屬性 (r/w/x) 是需要累加的,例如當屬性為 [-rwxrwx---] 則是:

    owner = rwx = 4+2+1 = 7
    group = rwx = 4+2+1 = 7
    others= --- = 0+0+0 = 0

    所以等一下我們設定屬性的變更時,該屬性的數字就是 770 啦!變更屬性的指令 chmod 的語法是這樣的:

    [root@linux ~]# chmod [-R] xyz 檔案或目錄
    參數:
    xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
    -R : 進行遞迴( recursive )的持續變更,亦即連同次目錄下的所有檔案、目錄
         都更新成為這個群組之意。常常用在變更某一目錄的情況。


    舉例來說,如果要將 .bashrc 這個檔案所有的屬性都打開,那麼就下達:

    [root@linux ~]# ls -al .bashrc
    -rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
    [root@linux ~]# chmod 777 .bashrc
    [root@linux ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc


    看到了嗎?屬性改變了喔!由於一個檔案有三組屬性,所以你可以發現上面 777 為三組,而由於我們將所有的屬性都打開,所以數字都相加,亦即『 r+w+x = 4+2+1 = 7』

    那如果要將屬性變成『 -rwxr-xr-- 』呢?那麼就成為 [4+2+1][4+0+1][4+0+0]=754 囉!所以你需要下達 chmod 754 filename。 最常發生的一個問題就是,常常我們以 vi 編輯一個 shell 的文字檔後,他的屬性通常是 -rw-rw-rw- 也就是 666 的屬性,如果要將他變成可執行檔,並且不要讓其他人修改此一檔案的話, 那麼就需要 -rwxr-xr-x 這一個 755 的屬性,所以 chmod 755 test.sh 就需要這樣做囉!

    另外,有些檔案你不希望被其他人看到,例如 -rwxr-----,那麼就下達 chmod 740 filename 吧!

    例題三:將剛剛您的 .bashrc 這個檔案的屬性改回原來的 -rw-r--r--
    答:

    chmod 644 .bashrc




    ·  符號類型改變檔案權限

    還有一個改變屬性的方法呦!從之前的介紹中我們可以發現,基本上就九個屬性分別是(1)user (2)group (3)others 三群啦!那麼我們就可以藉由 u, g, o 來代表三群的屬性!此外, a 則代表 all 亦即全部的三群!那麼讀寫的屬性就可以寫成了 r, w, x 囉!也就是可以使用底下的方式來看:

    chmod
    u
    g
    o
    a
    +(加入)
    -(除去)
    =(設定)
    r
    w
    x
    檔案或目錄



    來實作一下吧!假如我們要『設定』一個檔案的屬性為『-rwxr-xr-x』時,基本上就是:

    user (u):具有可讀、可寫、可執行的權限;
    group 與 others (g/o):具有可讀與執行的權限。
    所以就是:

    [root@linux ~]# chmod  u=rwx,go=rx  .bashrc
    # 注意喔!那個 u=rwx,go=rx 是連在一起的,中間並沒有任何空白字元!
    [root@linux ~]# ls -al .bashrc
    -rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc


    請注意, u=rwx,og=rx 這一段文字之間並沒有空白字元隔開呦!不要搞錯囉! 那麼假如是『 -rwxr-xr-- 』?可以使用『 chmod u=rwx,g=rx,o=r filename 』來設定。此外,如果我不知道原先的檔案屬性,而我只想要增加 .bashrc 這個檔案的每個人均可寫入的權限,那麼我就可以使用:

    [root@linux ~]# ls -al .bashrc
    -rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
    [root@linux ~]# chmod  a+w  .bashrc
    [root@linux ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc


    而如果是要將屬性去掉而不更動其他的屬性呢?!例如要拿掉所有人的 x 的屬性,則:

    [root@linux ~]# chmod  a-x  .bashrc
    [root@linux ~]# ls -al .bashrc
    -rw-rw-rw-  1 root root 395 Jul  4 11:45 .bashrc


    知道 +, -, = 的不同點了嗎?對啦! + 與 – 的狀態下,只要是沒有指定到的項目, 則該屬性『不會被變動』,例如上面的例子中,由於僅以 – 拿掉 x 則其他兩個保持當時的值不變!呵呵!多多實作一下,你就會知道如何改變屬性囉! 這在某些情況底下很好用的~舉例來說,您想要教一個朋友如何讓一個程式可以擁有執行的權限, 但您又不知道該檔案原本的權限為何,此時,利用 chmod a+x filename ,就可以讓該程式擁有執行的權限了。 是否很方便?

Open Toolbar