分页: 1 / 1

[已解决]如何向root所属文件夹写入文件

发表于 : 2012-04-29 20:37
xyy_xx
如题
正在写一个bash脚本。需要想/etc下写入一个配置文件。
尝试过cp mv
sudo cp,sudo mv
以及在tmp下生成文件再把owner和group换成root后弄到etc 下也不行
求解

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-29 20:55
hanla
:em06 我也是小菜,不过我觉得应该是挂载/ 是以ro方式挂载的吧.remount 成rw,试一下.

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-29 21:06
xyy_xx
hanla 写了::em06 我也是小菜,不过我觉得应该是挂载/ 是以ro方式挂载的吧.remount 成rw,试一下.
不好意思是etc这个目录,手拙敲快了。
谢谢各位了

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-29 21:20
lilydjwg
贴上脚本先。

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-29 21:37
YeLee
No such file or directory
:em04 :em04 :em04 你懂的。

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-29 23:40
xyy_xx
lilydjwg 写了:贴上脚本先。

代码: 全选

    _net_config_file='/tmp/wireless-cfg';
    read -p "Your ESSID  ==>"cw
    if [ -f $_net_config_file ];then
        sudo echo '' > $_net_config_file;
    else
        sudo touch $_net_config_file;
    fi
    sudo echo "ESSID='$cw'" >> $_net_config_file;
    read -p "Please type your wireless_password==>    " wireless_password
    sudo echo "KEY='$wireless_password'" >> $_net_config_file;
    sudo echo "INTERFACE='wlan0'" >> $_net_config_file;
    sudo echo "IP='dhcp'" >> $_net_config_file;
    sudo echo "SECURITY='wpa'">> $_net_config_file;
    cat $_net_config_file;#测试输出一下内容
    sudo mv $_net_config_file /ect/network.d/wireless.cfg;

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-29 23:42
xyy_xx
YeLee 写了:
No such file or directory
:em04 :em04 :em04 你懂的。
因为移动不过去 也复制不过去不知道为何会这样。很简单的一个问题,不知道卡在哪了短路所以上来问问 :em04

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-30 0:19
lilydjwg
xyy_xx 写了:
lilydjwg 写了:贴上脚本先。

代码: 全选

    _net_config_file='/tmp/wireless-cfg';
    read -p "Your ESSID  ==>"cw
    if [ -f $_net_config_file ];then
        sudo echo '' > $_net_config_file;
    else
        sudo touch $_net_config_file;
    fi
    sudo echo "ESSID='$cw'" >> $_net_config_file;
    read -p "Please type your wireless_password==>    " wireless_password
    sudo echo "KEY='$wireless_password'" >> $_net_config_file;
    sudo echo "INTERFACE='wlan0'" >> $_net_config_file;
    sudo echo "IP='dhcp'" >> $_net_config_file;
    sudo echo "SECURITY='wpa'">> $_net_config_file;
    cat $_net_config_file;#测试输出一下内容
    sudo mv $_net_config_file /ect/network.d/wireless.cfg;
1. 末尾不需要分号;
2. sudo 不是这么用的。sudo 用 root 权限执行了 echo 语句。但是,重定向是 shell 管的,而 shell 是普通用户权限。你可以用 sudo sh -c "echo xxx > yyy"。

另,为什么不不在脚本里使用 sudo,而让用户使用 sudo your_script 呢?

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-30 0:23
xyy_xx
lilydjwg 写了:
xyy_xx 写了:
lilydjwg 写了:贴上脚本先。

代码: 全选

    _net_config_file='/tmp/wireless-cfg';
    read -p "Your ESSID  ==>"cw
    if [ -f $_net_config_file ];then
        sudo echo '' > $_net_config_file;
    else
        sudo touch $_net_config_file;
    fi
    sudo echo "ESSID='$cw'" >> $_net_config_file;
    read -p "Please type your wireless_password==>    " wireless_password
    sudo echo "KEY='$wireless_password'" >> $_net_config_file;
    sudo echo "INTERFACE='wlan0'" >> $_net_config_file;
    sudo echo "IP='dhcp'" >> $_net_config_file;
    sudo echo "SECURITY='wpa'">> $_net_config_file;
    cat $_net_config_file;#测试输出一下内容
    sudo mv $_net_config_file /ect/network.d/wireless.cfg;
1. 末尾不需要分号;
2. sudo 不是这么用的。sudo 用 root 权限执行了 echo 语句。但是,重定向是 shell 管的,而 shell 是普通用户权限。你可以用 sudo sh -c "echo xxx > yyy"。

另,为什么不不在脚本里使用 sudo,而让用户使用 sudo your_script 呢?
1写php习惯用;了
2脚本里面可以

代码: 全选

sudo sh -c "echo xxx > yyy"
3因为这个脚本里面还有其他的function是普通用户执行的不需要用到sudo

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-30 0:45
lilydjwg
xyy_xx 写了: 3因为这个脚本里面还有其他的function是普通用户执行的不需要用到sudo
设计问题?

Re: 如何向root所属文件夹写入文件

发表于 : 2012-04-30 0:53
xyy_xx
lilydjwg 写了:
xyy_xx 写了: 3因为这个脚本里面还有其他的function是普通用户执行的不需要用到sudo
设计问题?
嗯对,脚本有点儿乱,记录的是一些常用方法。通过参数来调用不同的方法。稍候空了还是分成不同的文件算了。
还是感谢你,写这么久脚本居然被路径给困这么久 晕死