프로그램 사용/gcc2010. 2. 11. 16:05
gcc -static [파일이름]

위와 같이 컴파일 하면 정적으로 링크한다.
예를들어 /sbin/init 등이 제대로 되는지 확인할때
init를 임의로 만들어 정적으로 컴파일 후에 /sbin/init 치환하면
/lib 뒤질일 없이 바로 실행이 가능하므로 디버깅이 용이해진다.

하지만, 용량이 무지 커지니 주의!

-static
On systems that support dynamic linking, this prevents linking with the shared libraries. On other systems, this option has no effect.

[링크: http://linux.die.net/man/1/gcc]

[링크 : http://www.faqs.org/docs/Linux-mini/NFS-Root.html#toc5]
[링크 : http://lists.busybox.net/pipermail/busybox/2007-May/061479.html]
[링크 : http://www.linuxquestions.org/questions/linux-kernel-70/2.4.36.3-busyboxs-init-hangs-at-freeing-unused-kernel-memory-645556/]
Posted by 구차니
프로그램 사용/nfs2010. 2. 11. 14:45
현재 TCP를 통해 NFS가 부팅을 못하는게 이거 문제는 아닌것 같지만
아무튼, 보안관련 설정으로 squash 라는 것이 있다.

No root-squash means that the root user will not be mapped to user nobody (this is normally done for security reasons) when mounting / accessing a NFS file system.

[링크 : http://communities.vmware.com/thread/105011]

no-root-squash        루트의 자격으로 파일시스템에 접근할 수 있도록 마운트
     root-squash        루트의 자격으로 파일시스템에 접근하면 anonymous uid/gid로 바꿔서 허가

[링크 : http://mnslaboratory.springnote.com/pages/952932.xhtml]

User ID Mapping

nfsd bases its access control to files on the server machine on the uid and gid provided in each NFS RPC request. The normal behavior a user would expect is that she can access her files on the server just as she would on a normal file system. This requires that the same uids and gids are used on the client and the server machine. This is not always true, nor is it always desirable.

Very often, it is not desirable that the root user on a client machine is also treated as root when accessing files on the NFS server. To this end, uid 0 is normally mapped to a different id: the so-called anonymous or nobody uid. This mode of operation (called 'root squashing') is the default, and can be turned off with no_root_squash.

By default, exportfs chooses a uid and gid of 65534 for squashed access. These values can also be overridden by the anonuid and anongid options. Finally, you can map all user requests to the anonymous uid by specifying the all_squash option.

Here's the complete list of mapping options:

root_squash
Map requests from uid/gid 0 to the anonymous uid/gid. Note that this does not apply to any other uids that might be equally sensitive, such as user bin.
no_root_squash
Turn off root squashing. This option is mainly useful for diskless clients.
all_squash
Map all uids and gids to the anonymous user. Useful for NFS-exported public FTP directories, news spool directories, etc. The opposite option is no_all_squash, which is the default setting.
anonuid and anongid
These options explicitly set the uid and gid of the anonymous account. This option is primarily useful for PC/NFS clients, where you might want all requests appear to be from one user. As an example, consider the export entry for /home/joe in the example section below, which maps all requests to uid 150 (which is supposedly that of user joe).

[링크 : http://linux.die.net/man/5/exports]

7.4. I do not have permission to access files on the mounted volume.

This could be one of two problems.

If it is a write permission problem, check the export options on the server by looking at /proc/fs/nfs/exports and make sure the filesystem is not exported read-only. If it is you will need to re-export it read/write (don't forget to run exportfs -ra after editing /etc/exports). Also, check /proc/mounts and make sure the volume is mounted read/write (although if it is mounted read-only you ought to get a more specific error message). If not then you need to re-mount with the rw option.

The second problem has to do with username mappings, and is different depending on whether you are trying to do this as root or as a non-root user.

If you are not root, then usernames may not be in sync on the client and the server. Type id [user] on both the client and the server and make sure they give the same UID number. If they don't then you are having problems with NIS, NIS+, rsync, or whatever system you use to sync usernames. Check group names to make sure that they match as well. Also, make sure you are not exporting with the all_squash option. If the user names match then the user has a more general permissions problem unrelated to NFS.

If you are root, then you are probably not exporting with the no_root_squash option; check /proc/fs/nfs/exports or /var/lib/nfs/xtab on the server and make sure the option is listed. In general, being able to write to the NFS server as root is a bad idea unless you have an urgent need -- which is why Linux NFS prevents it by default. See Section 6 for details.

If you have root squashing, you want to keep it, and you're only trying to get root to have the same permissions on the file that the user nobody should have, then remember that it is the server that determines which uid root gets mapped to. By default, the server uses the UID and GID of nobody in the /etc/passwd file, but this can also be overridden with the anonuid and anongid options in the /etc/exports file. Make sure that the client and the server agree about which UID nobody gets mapped to.

[링크 : http://www.higs.net/85256C89006A03D2/web/PageLinuxNFSTroubleshooting]

root_sqash
     uid/gid 0(uid0와 gid0는 user root와 group root의 값이다)를 익명 uid/gid로 연결하기를 요청한다.
     사용자 'bin'과 같이 민감한 uid에는 적용되지 않음을 유의하라.
no_root_squash
     root squash를 사용하지 않음. 이 옵션은 디스크가 없는 클라이언트(MTD device)에 주로 사용됨.
all_squash
     모든 uid/gid를 익명 uid/gid로 연결함. NFS 로 연결된 공개(익명?) FTP 에 유용함.
     반대 옵션은 no_all_squash이며 기본값임.

기본값
root_squash / no_all_squash
root 계정을 익명(기본값으로 uid:65534/gid:65534로 연결)으로 사용하며, 모든 아이디를 익명으로 연결하지 않음
= 개별 uid/pid를 사용함.

'프로그램 사용 > nfs' 카테고리의 다른 글

changing port of NFS daemons (Installing STLinux On VMWare)  (0) 2010.02.12
NFS 관련  (0) 2010.02.11
unfsd - udev nfs deamon  (2) 2010.02.08
nfsstat  (0) 2010.02.07
우분투에서 nfs로 uboot 부팅이 안돼요 2  (0) 2010.02.06
Posted by 구차니
프로그램 사용/gcc2010. 2. 10. 10:45
gcc에서 지원하고 있는 언어를 확인하고 싶을때 사용하는 방법으로
gcc의 버전 정보중에 --enable-languages 의 값을 확인하면 된다.

$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20070626 (Red Hat 4.1.2-13)

$ sh4-linux-gcc -v
Using built-in specs.
Target: sh4-linux
Configured with: ../configure --host=i686-pc-linux-gnu --target=sh4-linux --prefix=/opt/STM/STLinux-2.2/devkit/sh4 --exec-prefix=/opt/STM/STLinux-2.2/devkit/sh4 --bindir=/opt/STM/STLinux-2.2/devkit/sh4/bin --sbindir=/opt/STM/STLinux-2.2/devkit/sh4/sbin --sysconfdir=/opt/STM/STLinux-2.2/devkit/sh4/etc --datadir=/opt/STM/STLinux-2.2/devkit/sh4/share --includedir=/opt/STM/STLinux-2.2/devkit/sh4/include --libdir=/opt/STM/STLinux-2.2/devkit/sh4/lib --libexecdir=/opt/STM/STLinux-2.2/devkit/sh4/libexec --localstatedir=/opt/STM/STLinux-2.2/devkit/sh4/var --sharedstatedir=/opt/STM/STLinux-2.2/devkit/sh4/share --mandir=/opt/STM/STLinux-2.2/devkit/sh4/man --infodir=/opt/STM/STLinux-2.2/devkit/sh4/info --program-prefix=sh4-linux- --with-local-prefix=/opt/STM/STLinux-2.2/devkit/sh4 --with-sysroot=/opt/STM/STLinux-2.2/devkit/sh4/target --enable-languages=c,c++ --enable-threads=posix --enable-nls --enable-c99 --enable-long-long --with-system-zlib --enable-shared --enable-multilib --enable-symvers=gnu --enable-__cxa_atexit --with-gxx-include-dir=${prefix}/target/usr/include/c++/4.1.1
Thread model: posix
gcc version 4.1.1 (STMicroelectronics/Linux Base 4.1.1-23)


[링크 : http://korea.gnu.org/manual/release/install/configure.html]
Posted by 구차니
프로그램 사용/VLC2010. 2. 9. 16:26
크로스컴파일
./configure --disable-mmx --disable-sse --enable-run-as-root --with-tuning=no --host=sh4-linux --build=i686  --disable-dbus --disable-dbus-control --disable-a52 --disable-glx --disable-postproc --disable-qt4 --disable-skins2


매번오류 내는것도 귀차니즘.. OTL


2010.03.09 추가
target에서 할경우
./configure --disable-mmx --disable-sse --enable-run-as-root --with-tuning=no --disable-dbus --disable-dbus-control --disable-a52 --disable-glx --disable-postproc --disable-qt4 --disable-skins2
Posted by 구차니
프로그램 사용/nfs2010. 2. 8. 15:40
패키지 이름은 unfs3
실행파일 이름은 unfsd
서비스 이름은 unfs3

실행은      sudo service unfs3 [start|stop|restart]
도움말은   man unfsd / unfsd -h
exports     /etc/exports

하지만 exports 문법이 조금 달라졌는지
*(rw) 의 *을 인식하지 못한다.

[링크 : http://unfs3.sourceforge.net/]
[링크 : http://sourceforge.net/projects/unfs3/]

[링크 : http://blog.syszone.co.kr/119]

'프로그램 사용 > nfs' 카테고리의 다른 글

NFS 관련  (0) 2010.02.11
NFS 설정 /etc/exports 의 squash  (0) 2010.02.11
nfsstat  (0) 2010.02.07
우분투에서 nfs로 uboot 부팅이 안돼요 2  (0) 2010.02.06
우분투의 nfs 서버로 uboot nfs 타켓 부팅 안되는 경우  (0) 2010.02.05
Posted by 구차니
프로그램 사용/nfs2010. 2. 7. 16:06
NFS의 기본설정을 몰라서 헤매다가 nfsstat을 통해 검사를 해보니
서버나 클라이언트에 따라 다르겠지만, FC6 -> ubuntu 9.10 에서는 TCP, NFSver3 로 접속한다.
물론 mount 명령에서는 별다른 옵션은 나오지 않는다.

# /usr/sbin/nfsstat -m
/media/nfs from 192.168.10.91:/
 Flags: rw,vers=3,rsize=262144,wsize=262144,hard,proto=tcp,timeo=600,retrans=2,sec=sys,addr=192.168.10.91

# mount
192.168.10.91:/ on /media/nfs type nfs (rw,addr=192.168.10.91)

Name

nfsstat - list NFS statistics

Examples

nfsstat -o all -234
Show all information about all versions of NFS.
nfsstat --verbose -234
Same as above.
nfsstat -o all
Show all information about about active versions of NFS.
nfsstat --nfs --server -3
Show statistics for NFS version 3 server.
nfsstat -m
Show information about mounted NFS filesystems.
[링크 : http://linux.die.net/man/8/nfsstat]


Posted by 구차니
프로그램 사용/nfs2010. 2. 6. 14:12
이번에도 될지 안될지는.. 정식으로 서버 아이피 변경해봐야 하겠지만.. OTL
일단 문제가 된건, 자동 생성된 exports 파일의 내용차이

FC6 버전의 exports 파일의 내용이 아래와 같이 간략했다면
 /home/morpheuz/st7109/target      *(rw,async,nohide,no_root_squash)

우분투 버전의 exports 파일은 이렇게 길다
 /home/morpheuz/st7109/target
        *(rw,async,wdelay,nohide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,
        secure_locks,no_acl,anonuid=65534,anongid=65534)

아무튼 exports manpage를 찾아보니,
no_acl

On some specially patched kernels, and when exporting filesystems that support ACLs, this option tells nfsd not to reveal ACLs to clients, so they will see only a subset of actual permissions on the given file system. This option is safe for filesystems used by NFSv2 clients and old NFSv3 clients that perform access decisions locally. Current NFSv3 clients use the ACCESS RPC to perform all access decisions on the server. Note that the no_acl option only has effect on kernels specially patched to support it, and when exporting filesystems with ACL support. The default is to export with ACL support (i.e. by default, no_acl is off).

[링크 : http://linux.die.net/man/5/exports]
요런 내용이 나오는데.. 이게 원인이려나?

잠시 테스트 하는데.. tcp 접속 옵션이 빠져 udp로 되니 이상없이.. OTL 머가 도대체 문제지?
ACL도 상관없고 도대체 TCP가 안되는건 또 머냐고 ㅠ.ㅠ

2010/02/05 - [Linux/Ubuntu] - [확인중] 우분투의 nfs 서버로 uboot nfs 타켓 부팅 안되는 경우

'프로그램 사용 > nfs' 카테고리의 다른 글

unfsd - udev nfs deamon  (2) 2010.02.08
nfsstat  (0) 2010.02.07
우분투의 nfs 서버로 uboot nfs 타켓 부팅 안되는 경우  (0) 2010.02.05
우분투 nfs 서버 접속불가  (2) 2010.02.05
ubuntu에 NFS 서버 설치  (0) 2010.02.04
Posted by 구차니
프로그램 사용/nfs2010. 2. 5. 15:29
Ubuntu 9.10 Desktop Edition 에서 nfs를 사용해서 target 보드를 사용할때 발생하는 문제이다.

1. 우분투 설치시 기본으로 추가하는 계정은
    sudo user로서 admin 그룹에 추가되어 있고, gid/uid=1000 이다.
2. FC6 에서 생성되는 녀석은 gid/uid=500 부터이다.
3. FC6의 유저와 타겟을 우분투로 옮기면 nfs rootfs를 붙이고는 서버가 응답이 없다고 나온다.
IP-Config: Complete:
      device=eth0, addr=192.168.10.198, mask=255.255.255.0, gw=192.168.10.1,
     host=hmp_7109, domain=, nis-domain=(none),
     bootserver=255.255.255.255, rootserver=192.168.10.91, rootpath=
Looking up port of RPC 100003/2 on 192.168.10.91
PHY: 0:03 - Link is Up - 100/Full
Looking up port of RPC 100005/1 on 192.168.10.91
VFS: Mounted root (nfs filesystem) readonly.
Freeing unused kernel memory: 104k freed
nfs: server 192.168.10.91 not responding, still trying
4. 물론, mount -t nfs 서버:/경로 로 붙이면 붙는다.
5. 혹시나 해서 유저를 admin 그룹에 추가하고, uid를 1000번 대로 이동시켰다.(확인 필요)

이런 경우에는 우분투의 nfs-kernel-server의 기본설정이 gid를 확인하도록 해놨기 때문이다.
이러한 보안 설정은 /etc/default/nfs-kernel-server 파일에 들어 있으며, 아래의 내용이 기본으로 들어 있다.
물론 이 파일은 기본 포맷으로 /usr/share/nfs-kernel-server/conffiles/nfs-kernel-server.default 에 존재한다.

$ cat /etc/default/nfs-kernel-server
# Number of servers to start up
RPCNFSDCOUNT=8

# Runtime priority of server (see nice(1))
RPCNFSDPRIORITY=0

# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or http://wiki.debian.org/?SecuringNFS
RPCMOUNTDOPTS=--manage-gids

# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=

# Options for rpc.svcgssd.
RPCSVCGSSDOPTS=

아무튼, 아래 내용을 번역하기 귀찮아서.. 대충 떄려잡기만 했는데,
결과론적으로, gid를 무시하고 접속을 하도록 하는것 같다.(ACL을 무시하는 듯)

장담은 못하겠지만, FC11에서도 동일한 현상으로 NFS 접속이 되지 않았는데(uboot에서)
FC11에서도 gid를 확인하도록 하기 때문이 아닐까 생각된다.

엄밀하게는 gid를 맞추어 주면 해결이 될듯 하지만.. 일단, 작동이 되니 여기까지 하는 구차니즘.. OTL

2010/02/05 - [Linux/Ubuntu] - 우분투 nfs 서버 접속불가
2010/02/04 - [Linux/Ubuntu] - ubuntu에 NFS 서버 설치


$ man mountd

NAME
       rpc.mountd - NFS mount daemon

OPTIONS
       -g  or  --manage-gids
              Accept requests from the kernel to map user id numbers into  lists of group id numbers for use in access  control.   An
              NFS  request  will normally (except when using Kerberos or other cryptographic authentication) contains a user-id and a
              list of group-ids.  Due to a limitation in the NFS protocol, at most 16 groups ids can be listed.  If you  use  the  -g
              flag,  then  the  list  of  group ids received from the client will be replaced by a list of group ids determined by an
              appropriate lookup on the server. Note that the 'primary' group id is not affected so a newgroup command on the  client
              will still be effective.  This function requires a Linux Kernel with version at least 2.6.21.

[링크 : http://linux.die.net/man/8/rpc.mountd]

2010.02.06 추가
막상 구서버를 옮기고 나서 다시 테스트 하는데 안된다 ㄱ- 뭥미?

----
다른 연관글 확인요망
Atheros LAN 드라이버의 버그로 인해 NFS/TCP의 전송에 대한 문제가 있었다.

'프로그램 사용 > nfs' 카테고리의 다른 글

nfsstat  (0) 2010.02.07
우분투에서 nfs로 uboot 부팅이 안돼요 2  (0) 2010.02.06
우분투 nfs 서버 접속불가  (2) 2010.02.05
ubuntu에 NFS 서버 설치  (0) 2010.02.04
NFS 마운트 하기 - how mount nfs filesystem  (0) 2010.01.11
Posted by 구차니
프로그램 사용/nfs2010. 2. 5. 10:18
FC6의 /etc/exports 를 우분투로 끌어왔는데 nfs가 제대로 구동되지 않았다.
아래와 같이 exportfs 라는 명령어를 통해 우분투용 설정에 맞도록 설정을 해주어야 한다.

ubuntu 9.10의 경우 nfs는 존재하지 않고, 커널이나 udev 방식의 nfs 서버가 존재한다.
아마 일반적으로 nfs대신 nfs-kernel-server 라는 서비스명으로 하면 될것이다.
확신은 못하겠지만, service nfs-kernel-server 라고 하면 /etc/exports 변경시 자동으로 업데이트 되는듯 하다.

$ sudo service nfs-kernel-server restart
이거 한줄이면 업데이트 끝.

2010/02/05 - [Linux/Ubuntu] - 우분투의 nfs 서버로 uboot nfs 타켓 부팅 안되는 경우
2010/02/04 - [Linux/Ubuntu] - ubuntu에 NFS 서버 설치


exportfs -a
exportfs
service nfs restart
service network restart

[링크 : http://www.linuxquestions.org/questions/linux-server-73/root-nfs-server-returned-error-13-while-mounting-homearavindbrfsrootfs-589574/]

exportfs - maintain list of NFS exported file systems

/usr/sbin/exportfs [-avi] [-o options,..] [client:/path ..]
/usr/sbin/exportfs -r [-v]
/usr/sbin/exportfs [-av] -u [client:/path ..]
/usr/sbin/exportfs [-v]
/usr/sbin/exportfs -f

The exportfs command is used to maintain the current table of exported file systems for NFS. This list is kept in a separate file named /var/lib/nfs/xtab which is read by mountd when a remote host requests access to mount a file tree, and parts of the list which are active are kept in the kernel's export table.

-a
    Export or unexport all directories.

[링크 : http://linux.die.net/man/8/exportfs]

exportfs를 실행하면 /etc/exports 파일에서 /var/lib/nfs/xtab 으로 설정을 옮겨간다.




2010.02.17 추가
*** VERY IMPORTANT!!!! ***

M/B - P5G41T-M LX
LAN - Atheros GbE AR81 family (AR8131/AR8132)
OS   - tested on FC6
증상 - NFS 를 TCP로 접속시 타켓이 부팅을 하지 못함
원인 - 드라이버 이상으로 추측(드라이버 교체로 해결)
해결 -
아래의 링크에서 문제가 해결된 드라이버로 교체(컴파일 필요)
[링크 : http://lnx.sensibile.it/files/foxconn/AR81Family-linux-v1.0.1.4.tar.gz]


2010/02/17 - [Linux] - NFS 왜 안될까?

Posted by 구차니
3.0.x 에서는 (다르게 말하자면 Fedora Core 6 용 삼바)
기본적으로 /etc/samba/smbpasswd 라는 파일을 이용해서 계정의 암호를 관리한다.
하지만 3.4.0 으로 가면서 tdb를 사용하게 되는데, 일종의 migration이 필요하게 된다.

조금 간단하게 이야기하자면
FC6 -> Ubuntu 9.10 삼바 마이그레이션 할 경우이다.

Account Import/Export

The pdbedit tool allows import/export of authentication (account) databases from one backend to another. For example, to import/export accounts from an old smbpasswd database to a tdbsam backend:

  1. root# pdbedit -i smbpasswd -e tdbsam

  2. Replace the smbpasswd with tdbsam in the passdb backend configuration in smb.conf.



[링크 : http://samba.org/samba/docs/man/Samba-HOWTO-Collection/passdb.html#pdbeditthing]

'프로그램 사용 > SMB(Samba)' 카테고리의 다른 글

samba on Ubuntu 10.04 LTS  (0) 2010.11.11
cifsd  (0) 2010.03.18
SPNEGO, NTLMSSP  (0) 2009.12.21
삼바 디버그 메시지 설정하기  (4) 2009.12.18
삼바에서 대용량 파일 전송 실패  (0) 2009.12.03
Posted by 구차니