[MagicLinux2.0]几个问题,谢谢解答。
红旗Linux4.0曾经很好用,但是毕竟太老了。我正在尝试将MagicLinux2.0升格为主要系统,逐渐淘汰红旗Linux4.0。红旗Linux4.0已经用了两年多,很多已经习惯的或者不成问题的地方在MagicLinux2.0上成了问题。目前比较突出的有以下三个:1. JDK问题。
我在系统中“/opt/prog/m/Java/J2SDK”处安装了JDK1.5.0_6,并在“/etc/profile”中添加了如下内容:
########################################
# Number: 3
# Date: Forgot
# Stat: Testing
# Name: J2SE
# Ver: 5.0 Update6
# Useage: Java
# Move: Moveable
# Type: Non-Compiled
#
export JAVA_HOME="/opt/prog/m/Java/J2SDK"
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$CLASSPATH:"./"
########################################
在红旗Linux4.0中,以上内容完全正常,没有问题。
以“typhoon”(Tomcat管理员)从控制台终查看,环境变量“JAVA_HOME”正确,并且Tomcat能正常启动。
以“root”身份从KDE虚拟终端查看环境变量“JAVA_HOME”也正确,但是在此虚拟终端里用命令“konsole”或“rxvt”新开一个虚拟终端,环境变量“JAVA_HOME”就变成“/usr/java/jre1.5.0_05”了。
以“typhoon”(Tomcat管理员)身份从KDE虚拟终端查看环境变量“JAVA_HOME”也是“/usr/java/jre1.5.0_05”,导致Tomcat无法启动。
刚才看了 http://mlwiki.maihaohui.com/index.php/Matlab ,猜测可能是“/etc/profile.d/java-profile.sh”导致的问题,但现在没有机会试,只好问问。
2. Samba问题
非常想知道怎样在MagicLinux2.0上利用Samba创建一个无须输入帐号口令即可访问的写共享。在红旗Linux4.0里这么做非常简单,用鼠标点点,或者直接修改“smb.conf”都很容易做到,而在MagicLinux2.0中似乎难于上天。
以下两段分别是红旗Linux4.0和MagicLinux2.0的“smb.conf”相关部分:
[share_rw]
comment =
writeable = yes
guest ok = yes
path = "/opt/prog/share_rw"
guest account = root
[share_rw]
guest account = root
case sensitive = no
guest ok = yes
msdfs proxy = no
read only = no
writeable = yes #这一行是手工修改时添加的
comment = Writable_Test
hosts allow = 0.0.0.0
path = /opt/prog/share_rw
MagicLinux2.0的“smb.conf”文件修改完毕后(手工修改、利用Samba管理GUI都用过)重新启动Samba,测试:
[root@TFW-HOST-0 samba]# mount //127.0.0.1/share_rw /mnt/lan
Password:
[root@TFW-HOST-0 samba]# touch /mnt/lan/1.txt
touch: 无法触碰 “/mnt/lan/1.txt”: 权限不够
[root@TFW-HOST-0 samba]# umount /mnt/lan
[root@TFW-HOST-0 samba]# mount //127.0.0.1/share_rw /mnt/lan -o rw
Password:
[root@TFW-HOST-0 samba]# touch /mnt/lan/1.txt
touch: 无法触碰 “/mnt/lan/1.txt”: 权限不够
[root@TFW-HOST-0 samba]# umount /mnt/lan
[root@TFW-HOST-0 samba]#
3. konsole终端里的字体
中英文混杂的时候难以上下对齐;中文的双引号只占一个字符空间。我经常看终端,也经常会中英数混合输入,编辑文件时碰到这种情况是难以忍受的。想了解一下konsole里怎么更换字体。
当然这个问题没有前两个问题紧迫,我可以暂时用从红旗Linux4.0上弄来的rxvt,只是没有konsole的特效罢了。
红旗Linux4.0的smb.conf
红旗Linux4.0的smb.confMagicLinux2.0的smb.conf
MagicLinux2.0的smb.confkonsole与rxvt的中英混排效果对比
konsole与rxvt的中英混排效果对比 附:我的“/usr/java”里是空的,没东西。Re: [MagicLinux2.0]几个问题,谢谢解答。
1. JDK问题。我在系统中“/opt/prog/m/Java/J2SDK”处安装了JDK1.5.0_6,并在“/etc/profile”中添加了如下内容:
########################################
# Number: 3
# Date: Forgot
# Stat: Testing
# Name: J2SE
# Ver: 5.0 Update6
# Useage: Java
# Move: Moveable
# Type: Non-Compiled
#
export JAVA_HOME="/opt/prog/m/Java/J2SDK"
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$CLASSPATH:"./"
########################################
在红旗Linux4.0中,以上内容完全正常,没有问题。
以“typhoon”(Tomcat管理员)从控制台终查看,环境变量“JAVA_HOME”正确,并且Tomcat能正常启动。
以“root”身份从KDE虚拟终端查看环境变量“JAVA_HOME”也正确,但是在此虚拟终端里用命令“konsole”或“rxvt”新开一个虚拟终端,环境变量“JAVA_HOME”就变成“/usr/java/jre1.5.0_05”了。
以“typhoon”(Tomcat管理员)身份从KDE虚拟终端查看环境变量“JAVA_HOME”也是“/usr/java/jre1.5.0_05”,导致Tomcat无法启动。
刚才看了 http://mlwiki.maihaohui.com/index.php/Matlab ,猜测可能是“/etc/profile.d/java-profile.sh”导致的问题,但现在没有机会试,只好问问。
/etc/bashrc 中有这么一段代码:
if [ "x$SHLVL" != "x1" ]; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
fi
使用用户登录方式进入 shell,与用其它方式( 如在 shell 再新建一个 shell )进入 shell 调用的脚本文件是不一样的。
login shell 调用 /etc/profile 文件
non-login shell 调用 /etc/bashrc 文件
把那个设置放到 /etc/profile.d/java-profile.sh 就好了
Re: [MagicLinux2.0]几个问题,谢谢解答。
3. konsole终端里的字体中英文混杂的时候难以上下对齐;中文的双引号只占一个字符空间。我经常看终端,也经常会中英数混合输入,编辑文件时碰到这种情况是难以忍受的。想了解一下konsole里怎么更换字体。
konsole “设置” 菜单 --> “字体” --> “选择”
在 “选择字体” 的对话框中选择 DejuVu Sans Mono,或 Bitstream Vera Sans Mono 试试,看看问题能不能解决 3 的问题:
konsole 和 rxvt 文字实现机理似乎不同,导致 konsole 用的是动态宽度,rxvt 是静态宽度。
找一个固定字符宽度的字体给 konsole 就可以了。 2. Samba问题
非常想知道怎样在MagicLinux2.0上利用Samba创建一个无须输入帐号口令即可访问的写共享。
samba的配置方面,你一定要注意几点:
1:要将访问的安全级别设置为share,并且设置一个"guest account":
security = share;
guest ok = yes
guest account = nobody;
2:假设你需要共享出来,让匿名用户可写的目录为/home/backup,在smb.conf里要指定它是可写的:
[writeable]
path = /home/backup
guest ok = yes
browseable = yes
writeable = yes
3:在操作系统里,你还必须把该目录的权限设置为除了owner和group之外的other用户可写。因为SAMBA的权限设置是smb.conf和系统目录本身的权限这两方面配合的:
# chmod -R 777 /home/backup
这样基本就没问题了,试试吧。有问题就发上来。
samba的配置方面,你一定要注意几点:
1:要将访问的安全级别设置为share,并且设置一个"guest account":
security = share;
guest ok = yes
guest account = nobody;
这个“guest account”需要在系统中创建用户“guest”或“nobody”吗?还是只要在“smb.conf”里加一行“guest account = nobody;”?后面的分号要加吗?
这个“guest account = nobody”又是什么意思?和“guest account = root”有什么差别?如果对方的机器通过共享向本机传文件,那么传过来的文件其所有者和组又是什么?
2:假设你需要共享出来,让匿名用户可写的目录为/home/backup,在smb.conf里要指定它是可写的:
[writeable]
path = /home/backup
guest ok = yes
browseable = yes
writeable = yes
在红旗4.0里,“guest account = xxx”都是指定在具体某个共享的描述段中,在ML2.0里移动到最前面的“global”段里了?
3:在操作系统里,你还必须把该目录的权限设置为除了owner和group之外的other用户可写。因为SAMBA的权限设置是smb.conf和系统目录本身的权限这两方面配合的:
# chmod -R 777 /home/backup
要共享的目录在vfat分区,“chmod -R 777”不管用啊。 我手工添加了红旗Linux4.0的“东文宋体”和M$的“simsum”,在Kpnqueror和Eclipse的字体设置中都可以应用,就是不能在kpnsole字体设置中找到。
samba的配置方面,你一定要注意几点:
1:要将访问的安全级别设置为share,并且设置一个"guest account":
security = share;
guest ok = yes
guest account = nobody;
这个“guest account”需要在系统中创建用户“guest”或“nobody”吗?还是只要在“smb.conf”里加一行“guest account = nobody;”?后面的分号要加吗?
这个“guest account = nobody”又是什么意思?和“guest account = root”有什么差别?如果对方的机器通过共享向本机传文件,那么传过来的文件其所有者和组又是什么?
sorry,参数后的分号是不要的。是我的疏忽。
nobody用户一般是系统都有的。而且是被禁止登陆到系统的。
"guest account = nobody"的意思就是,如果客户端使用匿名登陆进行访问,写入的文件的权限都是指定的用户(nobody)的权限。即,客户端登陆上来,都相当于是本地的nobody用户在操作。
2:假设你需要共享出来,让匿名用户可写的目录为/home/backup,在smb.conf里要指定它是可写的:
[writeable]
path = /home/backup
guest ok = yes
browseable = yes
writeable = yes
在红旗4.0里,“guest account = xxx”都是指定在具体某个共享的描述段中,在ML2.0里移动到最前面的“global”段里了?
需要说明一下,"guest account = xxx"既可以作为全局的,也可以作为局部的。如果你需要指定SAMBA服务器上所有的共享都是以“guest account = xxx"指定的用户来操作,那就可以放在global区域里。如果需要为不同的共享指定不同的guest account,那就放在单独的字段里。
3:在操作系统里,你还必须把该目录的权限设置为除了owner和group之外的other用户可写。因为SAMBA的权限设置是smb.conf和系统目录本身的权限这两方面配合的:
# chmod -R 777 /home/backup
要共享的目录在vfat分区,“chmod -R 777”不管用啊。
因为FAT分区没有这种权限控制,所以,你不chmod -R 777也是一样可用的。
Any more question? 经过试验,Java问题已经解决,konsole字符仍然无法解决。konsole自带的所有字体都试过了。konsole不能识别新安装的“东文”、“SimSun”等字体。
Samba方面,安全级别设置为“user”,客户账号设置为“root”,并在具体共享段中添加“weiteable = yes”后,刷新Samba,共享可写。
新问题:
如果一个条目在全局中指定而没在具体共享段里指定,则这个条目会对所有共享段有效;
如果一个条目没在全局中指定而在具体共享段里指定,则这个条目会对本共享段有效;
如果一个条既在全局中指定也在具体共享段里指定,但对应的值不同,又会怎么样? Samba方面,安全级别设置为“user”,客户账号设置为“root”,并在具体共享段中添加“weiteable = yes”后,刷新Samba,共享可写。
强烈建议你将"guest account"设置为某个低权限用户,任何的共享都不应该以root身份提供。
你所需要做的就是,将guest account设置为低权限用户(越低越好,这是网络安全的一个要素),然后为这个用户赋予那些需要共享的文件以相应的权限。
新问题:
如果一个条目在全局中指定而没在具体共享段里指定,则这个条目会对所有共享段有效;
如果一个条目没在全局中指定而在具体共享段里指定,则这个条目会对本共享段有效;
理论上是这样的。这就是全局于局部的区别。
你是写程序的,相信你也明白”全局变量“与”局部变量“的区别。
如果一个条既在全局中指定也在具体共享段里指定,但对应的值不同,又会怎么样?我个人还没有测试过这种情况,暂时不能发表言论。 如果一个条既在全局中指定也在具体共享段里指定,但对应的值不同,又会怎么样?
在重新定义为局部变量的区域中,为局部变量的值。
在其它地方,为全局变量的值。
页:
[1]
2