안녕하세요, 타이젠 개발자 윤진입니다.


"에이서 아스파이어"

4년 전쯤 구매한 노트북입니다.


당시 사내에서 타이젠 앱 컨테스트가 열렸고,

여기저기 부유하며 컨테스트에 참여하기 위해 노트북을 구매하였습니다.

아직도; 다나와에서 이 모델을 구할 수 있네요.


출처 : 다나와


이 노트북에 우분투 16.04를 설치하니 몇가지 소소한 문제가 나왔습니다.

(타이젠이 공식적으로 17.04를 지원하지 않기 때문에 16.04를 쓰고 있습니다)

본 포스팅에 몇가지 이슈에 대해 그때그때 하나씩 옮기려고 합니다.




* 터치패드 동작실패

과거 터치패드의 동작방식이 마우스의 동작방식과 유사하다고 판단하여,

터치패드에서 발생하는 인풋을 마우스 인풋으로 변환하여 사용하였습니다.

운영체제 입장에서도 터치패드는 외부 마우스처럼 인식되었습니다.


하지만, 터치패드는 마우스와 같지 않습니다.

터치패드에 특화된 멀티터치 기능이나 손바닥인식보정 기능이 필요합니다.

'터치패드 인풋 = 마우스 인풋'인 상황에서,

위의 기능들은 터치패드 드라이버단에서 처리해야할 일이었습니다.


드라이버단의 수고를 덜어주기 위해,

Precision Touchpad는 운영체제에 터치패드의 인풋을 그대로 넘겨주고,

멀티터치나 손바닥인식보정은 터치패드의 인풋 데이터를 보고 운영체제가 처리합니다.

드라이버 제작자 입장에서는 구현해야할 기능이 줄어들기 때문에 개발비용을 절약할 수 있습니다.


하지만, Ubuntu 16.04에는 Precision Touchpad를 지원하는 기능이 빠져있습니다.

그래서 Normal Touchpad만 사용하거나 Precision Touchpad를 위한 패키지를 설치해주어야 합니다.


- Normal Touchpad 사용하기

① 전원 on

② 부팅 중 Acer 로고가 나올때 F2를 눌러 BIOS 진입

③ 화살표로 Main 메뉴 진입

④ 터치패드를 Advanced에서 Basic으로 변경

⑤ F10 키를 누르고 Save and Exit 선택

⑥ 재부팅 


- Precision Touchpad를 위한 패키지 설치하기

$ sudo apt-get install xserver-xorg-input-synaptics

위의 패키지를 설치하여 동작한다면 성공~!

패키지를 설치하여도 실패하는 경우가 있습니다.

이 경우 BIOS에서 Normal Touchpad를 설정하여 사용하세요.



* 셧다운 실패

메뉴의 '컴퓨터 끄기'를 실행하거나 cmd에서 shutdown하는 경우,

전원이 꺼지지 않는 이슈가 있습니다.

전원이 꺼지는데 상당한 시간이 걸리는게 아닌지 의심되어,

배터리가 1%가 될때까지 몇시간 동안 켜놨으나 꺼지지 않았습니다.


이 경우 여러가지 원인이 있을 수 있는데,

그 중 하나가 systemd의 문제에서 기인합니다.

systemd는 컴퓨터 종료시 유닛들을 정리하는데,

timeout이 없다면 하염없이 기다리는 문제가 있습니다.

따라서, systemd의 conf에서 timeout 값을 설정하여 제한시간 만큼만 기다리게 설정해야 합니다.


 $ sudo /etc/systemd/system.conf


위의 명령어를 치고 들어가서,

 DefaultTimeoutStartSec=30s

 DefaultTimeoutStopSec=30s

위의 필드의 주석을 풀고 제한시간을 입력해주세요.

제한시간은 시스템의 상태를 보고,

유닛이 자원을 정리하는데 필요한 최소한의 시간 이상으로 설정해주어야 합니다.

이에 대해서는 모범답안이란 없으니 자신의 상황에 맞춰 써주세요.




* 출처

https://us.answers.acer.com/app/answers/detail/a_id/36865/~/changing-the-precision-touchpad-settings-in-the-bios

https://ubuntuforums.org/showthread.php?t=2322413

https://askubuntu.com/questions/764568/ubuntu-16-04-hangs-on-shutdown-restart

https://ubuntu-mate.community/t/regarding-defaulttimeoutstartsec-defaulttimeoutstopsec/6373

  1. 2018.03.28 12:03

    비밀댓글입니다

  2. 철이 2018.05.20 13:18

    초대장좀 부탁드립니다
    schuel@hanmail.net



안녕하세요, 윤진입니다.


학창시절에 모든 레포트는 <한글과 컴퓨터>의 '한글' 프로그램으로 작업했었습니다.

군행정병으로 근무했던 때에는 거의 모든 단축키를 외우며 작업을 했었죠.

천타를 넘나드는 행정병들의 작업은 예술로 승화된 퍼포먼스였습니다.


vi/emacs에 길들여진 개발자가 다른 에디터를 사용하지 못하는 것처럼,

한글 프로그램의 작업효율은 굉장히 높았습니다.


특히 보수적인 집단에서는 컨텐츠 보다는 글자서식/문단서식을 더 중요하게 여겼기 때문에,

그에 나름 특화된 한글 프로그램이 더 빛났습니다.


하지만, 어느 순간부터 주위에서 한글 대신 외제 프로그램을 사용하기 시작하더군요;

여러가지 이유들이 많이 있었지만 이유가 어찌되었건 개인적인 아쉬움은 큽니다.


아직 관공서나 학교에서는 한글프로그램으로 문서 작업을 하고 있습니다.

얼마전 대학교에서 문서를 하나 받았었는데요,

.hwp 파일인 것을 보고 잠시 추억에 젖었었습니다;


우분투에서 작업하는 것을 즐기는지라 한글파일을 어떻게 열어보면 좋을 지 고민을 했는데요,

<한글과 컴퓨터>사에 우분투 사용자들을 위해 무료로 한글 뷰어를 출시했더군요.




2014년 10월에 공지가 되었고,

공지글 조회수가 20만건이 넘는 것으로 보아 저만 몰랐을 수도 있겠네요.


근데 안타깝게도 위의 공지에 쓰여진 것처럼,

H&Friends에서는 우분투용 한글 뷰어를 찾을 수가 없었습니다.

사이트 어딘가에 감춰져 있어 쉽지 눈에 띄지 않을 수도 있겠고,

더 이상은 지원하지 않을 수도 있겠죠;




어쩌면 매니악한 리눅스는 과감히 포기하고,

<Netffice>라는 웹프로그램으로 거듭나기 위해  노력일 수도 있겠죠.


그래서 <한글과 컴퓨터>의 뷰어를 사용하는 것은 포기하고 다른 방법을 찾아보았습니다.

놀랍게도 github에 한글 관련 프로젝트가 있더군요.

"류창우님의 evince-hwp 프로젝트" 보기

우분투에서 한글파일을 사용할 수 있도록 뷰어를 제공합니다.




우분투 저장소에 올라와있는지 확인해보았습니다.

apt-cache로 찾아보니 바로 나오더군요.

 $ apt-cache search hwp




그래서 뷰어를 설치해보았습니다.

$ sudo apt-get install evince-hwp

작은 프로그램이라 설치에 몇 초도 안 걸립니다.




설치가 완료된 후, 커맨트 창에서 'evince'만 치면 GUI 프로그램이 실행됩니다.

표가 제대로 나오지는 않지만 상관없습니다.

이 정도 수준이면 문서를 읽는데 아무런 지장이 없습니다. :)


이런 훌륭한 오픈소스 프로젝트가 많아져야 합니다.


오늘은 여기서 마치겠습니다.

그럼 즐거운 하루 보내세요~


끝_





최신 버전 Ubuntu 15.04 64비트에 Tizen 2.3 SDK를 설치해보았습니다.

올초에 나온 Tizen 2.3 SDK는 14.04까지 공식지원하고 있습니다.

다행히 15.04에서도 SDK의 기본 기능을 사용하는데 문제는 없습니다.


하지만, 드디어 에러를 만나게 됩니다.

Tizen SDK 내에 edc 파일을 편집할 때 사용하는 enventor라는 툴이 실행이 안되더군요.

이번 포스팅은 enventor를 '임시'로 사용할 수 있는 방법을 공유합니다.



안녕하세요, Tizen 개발자 윤진입니다.


이번 포스팅은 타이젠 2.3 SDK에서 공식지원하지 않는 Ubuntu 15.04 환경에서 벌어진 일을 다룹니다.

Ubuntu 14.04에서는 위와 같은 에러 없이 Eventor를 사용하실 수 있습니다.

하지만, 최신 버전의 우분투에서 타이젠 SDK를 사용하고 싶으시다면 이번 포스팅을 참고해주세요.



SDK에서 edc 파일을 편집하기 위해 파일을 더블클릭하면 위와 같은 팝업창이 뜹니다.

팝업 내용은 edc 편집툴인 enventor를 런칭하지 못한다는 내용인데요,

에러로그 뷰를 살펴보라고 하지만, 에러로그 뷰에는 별 다른 내용이 없습니다.

그래서 이를 해결하기 위해서 enventor를 커맨트창에서 직접 실행해보았습니다.


$ ~/tizen-sdk/tools/enventor/bin/enventor 
/home/storycompiler/tizen-sdk/tools/enventor/bin/enventor: error while loading shared libraries: libelementary.so.1: cannot open shared object file: No such file or directory


elementary 라이브러리가 없어서 enventor가 실행이 안되는 것이었군요.

하지만, 타이젠 SDK에는 elementary 라이브러리가 포함되어 있습니다.


$ ls ~/tizen-sdk/tools/efl-tools/lib/libelementary.so.1
/home/storycompiler/tizen-sdk/tools/efl-tools/lib/libelementary.so.1

위의 위치를 보시면 EFL에서 제공하는 다수의 라이브러리를 확인하실 수 있습니다.

물론 elementary도 찾을 수 있지요.

라이브러리가 있는데 찾지 못하는 것은 라이브러리 위치가 등록되어있지 않기 때문입니다.

타이젠 라이브러리 디렉토리를 등록하기 위해 /etc/ld.so.conf.d 디렉토리에 tizen.conf 파일을 새로 만듭니다.

그 안에 위의 라이브러리 디렉토리를 추가해둡니다.


$ cat /etc/ld.so.conf.d/tizen.conf
/home/storycompiler/tizen-sdk/tools/efl-tools/lib


그리고 다시 enventor를 실행해봅니다.

이번에는 아래처럼 libgnutls 라이브러리가 없다고 나옵니다.


$ ~/tizen-sdk/tools/enventor/bin/enventor 
/home/storycompiler/tizen-sdk/tools/enventor/bin/enventor: error while loading shared libraries: libgnutls.so.26: cannot open shared object file: No such file or directory


libgnutls.so.26 버전은 여기에서 다운로드 받을 수 있습니다.

위의 사이트가 열리지 않을 경우에 대비하여 64비트 우분투 15.04용 rpm을 첨부합니다.

lib64gnutls26-2.12.14-2-mdv2012.0.x86_64.rpm

아래와 같이 libgnutls.so.26 버전을 설치합니다.

여기에서는 64비트 환경에 맞춰서 64비트용의 라이브러리를 설치하였습니다.


$ sudo rpm -Uvh --force --nodeps lib64gnutls26-2.12.14-2-mdv2012.0.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
경고: lib64gnutls26-2.12.14-2-mdv2012.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 26752624: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:lib64gnutls26-2.12.14-2          ################################# [100%]

그리고 다시 enventor를 실행해봅니다.

이번에는 libgcrypt.so.11 파일이 없다고 나오네요.

$ ~/tizen-sdk/tools/enventor/bin/enventor
/home/storycompiler/tizen-sdk/tools/enventor/bin/enventor: error while loading shared libraries: libgcrypt.so.11: cannot open shared object file: No such file or directory


따라서 이번에도 libgcrypt.so.11 버전을 찾아서 받습니다.

위의 버전은 여기에서 다운로드 받으실 수 있습니다.

위의 사이트가 열리지 않을 경우에 대비하여 64비트 우분투 15.04용 rpm을 첨부합니다.

lib64gcrypt11-1.5.4-5.mga5.x86_64.rpm

$ sudo rpm -Uvh --force --nodeps lib64gcrypt11-1.5.4-5.mga5.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
경고: lib64gcrypt11-1.5.4-5.mga5.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:lib64gcrypt11-1.5.4-5.mga5       ################################# [100%]


libgcrypt는 /usr/lib64에 설치가 됩니다.

하지만, 위의 위치는 ld.conf에 등록된 위치가 아닐 수 있습니다.

$ ls /usr/lib64/libgcrypt.so.11
/usr/lib64/libgcrypt.so.11


따라서 좀 전에 elementary를 등록하기 위해 만든 tizen.conf에 lib64도 등록해둡니다.

$ cat /etc/ld.so.conf.d/tizen.conf 
/home/storycompiler/tizen-sdk/tools/efl-tools/lib
/usr/lib64
$ sudo ldconfig


그리고 다시 enventor를 실행하면 이번엔 libtasn1.so.3이 없다는 에러가 나옵니다.

$ ~/tizen-sdk/tools/enventor/bin/enventor 
/home/storycompiler/tizen-sdk/tools/enventor/bin/enventor: error while loading shared libraries: libtasn1.so.3: cannot open shared object file: No such file or directory


이번에도 libtasn1.so.3을 여기에서 다운로드 받습니다.

위의 사이트가 열리지 않을 경우에 대비하여 64비트 우분투 15.04용 rpm을 첨부합니다.

libtasn1-3-1.2-31.2.x86_64.rpm

$ sudo rpm -Uvh --force --nodeps libtasn1-3-1.2-31.2.x86_64.rpm 
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
경고: libtasn1-3-1.2-31.2.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 92fbd4a7: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:libtasn1-3-1.2-31.2              ################################# [100%]


위의 파일마저 제대로 설치하였다면, 이제는 enventor를 실행할 수 있습니다.


자, 이제 다시 개발의 재미에 빠져보시죠.

그럼 좋은 하루 보내세요~

끝_


* References

http://rpmfind.net/linux/rpm2html/search.php?query=libgnutls.so.26%28%29%2864bit%29

http://rpmfind.net/linux/rpm2html/search.php?query=libgcrypt.so.11%28%29%2864bit%29

http://rpm.pbone.net/index.php3/stat/4/idpl/23618373/dir/redhat_el_5/com/libtasn1-3-1.2-31.2.x86_64.rpm.html

제어문과 변수까지 살펴보니 expr가 남았네요.

expr까지 간단하게 살피고 나서는,

쉘스크립트 자체 문법보다는 쉘스크립트와 함께 쓰이는 유용한 명령어들을 살펴보겠습니다.


쉘스크립트가 명령어를 좀 더 지능적으로 사용하려는 의도에서 만들어졌기 때문에,

이 다음부터가 본편이라 볼 수 있겠네요.



expr는 명령어로서 존재합니다.

$ ls /usr/bin/expr
/usr/bin/expr


하지만, bash 쉘은 expr를 built-in으로 내장시켰습니다.

쉘스크립트에서 expr 명령어를 사용하면,

/usr/bin/expr를 사용하지 않고 내장된 build-in 명령어를 실행합니다.

build-in 명령이 외부 명령보다 빠릅니다.

외부 명령어는 프로그램 로딩/런칭만으로도 하세월 보내겠죠.

물론, 굳이 외부 명령어를 사용하고 싶다면 절대경로를 지정해서 사용할 수 있습니다.


expr로 연산할 수 있는 내용은 아래 4가지 입니다.

- 산술 : +, -, *, /, %

- 논리 : |(or), &(and)

- 관계 : =, >, >=, <, <=, !=

- 문자열 : ':'(일치 혹은 substitute)


expr도 명령어이기 때문에 연산자와 피연산자는 (space)로 구분되어야 합니다.

아래와 같이 공백을 안주면 5+1을 하나의 문자열로 인식합니다.

$ expr 5+1
5+1

아래와 같이 공백을 주어야 제대로 답이 계산됩니다.

$ expr 5 + 1
6


연산자로 쓰이는 기호 중 일부는 이미 특수문자로 사용되고 있습니다.

특수문자 : '*' all, '&' bg, '|' pipe, '>', '<' redirection, '(', ')' grouping

위의 문자를 연산에 사용하려면 쉘스크립트가 낚아채서 다른 부호로 오해하지 않게,

각 부호 앞뒤로 따옴표로 감싸주거나 부호 앞에 escape 문자인 '\'를 붙입니다.

$ expr 5 '*' 2
10
$ expr 5 "*" 2
10
$ expr 5 \* 2
10


만약 expr에 사용되는 인수들을 통째로 따옴표처리하면,

expr에 연산자 / 피연산자의 구분되어 처리되지 않고 하나의 문자열로 취급됩니다.

$ expr '5 * 3'
5 * 3


'=' 연산은 좌우의 피연산자의 값이 같으면 1(true)을 출력하고 다르면 0(false)을 출력합니다.

여기서 '출력'의 의미는 '리턴값'과 다른 것에 주의합니다.

'출력'은 true의 경우 1이고, false의 경우 0입니다.

하지만 '리턴값'은 true인 상황에서는 0이고 false인 상황에서는 1이지요.

값에서 보면, '출력'과 '리턴값'은 서로 반대이기 때문에 헛갈릴 수밖에 없습니다.

$ a=5
$ expr $a = 5
1
$ echo $?
0
$ expr $a = 4
0
$ echo $?
1
$ expr $a = '5 * 3'
0
$ echo $?
1

이렇게 된 연유는 '리턴값'에 대한 유닉스 고유의 정책때문입니다.

유닉스에서는 에러없이 성공적으로 프로그램이 종료되면 '0'을 리턴합니다.

문제가 있으면 '0' 외에 다른 값을 출력합니다.

따라서 쉘스크립트에서도 '0'인 경우를 '성공'으로 판단합니다.


하지만 일반적인 프로그래밍 언어에서는 '1'은 true이고 '0'은 false입니다.

expr가 출력하는 값은 일반적인 프로그래밍 언어에서 사용하는 방식 그대로입니다.

이 부분은 오랜 시간 규약처럼 정해져서 이제는 바꾸기 힘들겁니다.

이에 대한 이야기는 나중에 할 기회가 또 오겠지요.


$ E="="
$ expr $E = "="
1

위와 같은 경우에는 마치 등호가 세 개 나란히 쓰인 것처럼 보이겠네요.

하지만, 가운데 등호만 등호로 인식되고,

좌우의 등호기호는 피연산자인 문자로 인식됩니다.

쉘 버전에 따라 좌우에 있는 '='도 연산자로 인식하여 오류가 나는 경우도 있습니다.


따라서 연산기호를 사용한 변수를 위해 변수 앞에 문자열 'x'를 붙여서 비교할 수 있습니다.

$ expr x$E = x"="
1

'x' 문자를 붙이면 변수가 null이더라도 제대로 비교가 되지요.


expr 명령어가 리턴값 외에 출력값이 있으니 출력값을 제거하고 싶을 때도 있을겁니다.

그럴 때는 redirection을 이용합니다.

$ a=7
$ expr $a = 7 > /dev/null && echo $a
7

/dev/null로 출력을 보내버리면 더 이상 화면에는 아무 것도 출력하지 않습니다.

하지만, &&가 연달아 붙어있습니다.

expr 명령문 자체가 성공을 의미하는 '0'을 리턴하므로,

&& 뒷편의 명령어도 실행이 됩니다.

echo $a에 의해 최종적으로 a 변수값이 출력되었습니다.


$ expr $a = 8 > /dev/null && echo $a

반면 위와 같이 $a가 7인데 8과 비교를 하였다면, 결과값은 실패를 의미하는 1이 나옵니다.

결과가 1이면 &&의 뒷부분은 실행되지 않습니다.


이제 logical 비교를 수행해보겠습니다.

$ expr "" \| ""
0
$ echo $?
1

null값 두 개를 oring(|) 해봤자 결과는 null입니다.

false를 의미하는 0을 출력하였고, 실패라는 의미의 '1'을 리턴하였습니다.


$ expr "" \| 0
0
$ echo $?
1

null과 0을 oring(|) 해도 결과는 false입니다.


반면 피연산자 중 하나가 1이거나 문자라면 결과는 true가 됩니다.

출력값은 1 혹은 문자가 나옵니다.

$ expr "" \| 1
1
$ echo $?
0
$ expr "" \| "a"
a
$ echo $?
0


$ expr "a" \| "hello"

위의 출력값은 무엇일까요?

"a"에서 이미 oring의 결과가 결정되었습니다.

따라서 출력은 "a"입니다.


and 연산은 피연산자 중에 하나가 null 혹은 0이면 출력은 언제나 '0'이 됩니다.

$ expr '' \& ''
0
$ echo $?
1
$ expr "" \& ""
0
$ echo $?
1
$ expr "" \& 1
0
$ echo $?
1
$ expr "" \& "a"
0
$ echo $?
1

리턴값은 실패를 의미하는 1입니다.


$ expr 1 \& "a"
1
$ expr "a" \& 1
a

양쪽에 값이 있으면 앞쪽에 나온 값이 출력값이 됩니다.

리턴값은 당연히 성공을 의미하는 0입니다.


":" 연산은,

string : 정규표현식

위와 같은 형태로 사용합니다.

string 문자열 내에서 정규표현식에 부합하는 문자열의 길이를 출력합니다.

$ expr story : story
5
$ echo $?
0
$ expr story : storycompiler
0
$ echo $?
1
$ expr storycompiler : story
5
$ echo $?


하지만 정규표현식은 string의 제일 첫 문자부터 일치여부를 가립니다.

$ expr compiler_of_story : story
0

위처럼 string에 story가 있음에도 불구하고,

출력값은 false를 뜻하는 0이 나왔습니다.


$ a="1234abcd"
$ expr $a : [^a-zA-Z]*[a-zA-Z]
5
$ expr $a : [^a-zA-Z]*[a-zA-Z]*
8

위처럼 복잡하게 정규식을 사용하여 정규식에 일치하는 문자개수를 출력할 수 있습니다.

마지막에 '*' 유무에 따라 "1234a" 혹은 "1234abcd"까지 일치하지요.


expr에 괄호를 사용하여 괄호 안에서 매치되는 부분만 출력할 수 있습니다.

$ expr "$a" : '[0-9]*\([a-z]*\)'
abcd
$ expr "$a" : "[0-9]*\([a-z]*\)"
abcd

a변수는 "1234abcd"인 경우,

[0-9]*에 의해 1234가 매치됩니다.

그리고 그 뒤에 괄호에 의해 abcd가 매치가 됩니다.

expr는 괄호 내에서 매치되는 부분이 있으면 그 내용을 출력합니다.

매치된 문자 개수말고 매치된 내용을 출력하게 되지요.


$ expr "$a" : [0-9]*\([a-z]*\)
0

단, 위처럼 ""나 ''로 정규식을 감싸지 않으면 매치된 문자열을 출력하지 않습니다.

따옴표로 감싸진 부분만 스트링으로 인지하여 출력합니다


여태까지 살펴본 expr의 수많은 연산자들 사이에는 우선순위가 있습니다.

총 7단계로 나눌 수 있습니다.

1. 괄호

     괄호는 다른 모든 우선순위를 능가합니다. 어느 언어에서나 마찬가지이죠.

2. string : 정규식

     문자열에서 정규표현식을 부분이 괄호를 제외하고 가장 높습니다.

3. *, /, %

     곰셈, 나눗셈, 나머지 연산

4. +, - 

    덧셈, 뺄셈

5. =, >, >=, <, <=, !=

    관계

6. &

    and연산

7. |

    or 연산


이상과 같습니다.

우선순위가 확실히 기억나지 않는다면 괄호로 감싸주면 되겠지요.


오늘은 여기까지 하겠습니다

그럼 좋은 하루 보내세요~

끝_


* References

http://www.grymoire.com/Unix/Sh.html#uh-84

  1. dn 2016.07.14 17:53

    좋은정보감사합니다!!!ㅠㅠ

  2. 뉴트리노개미 2016.11.06 11:59

    리눅스 쉘 프로그래밍 배우는중에 연산자가 어떤 종류가 있나 해서 들어왔는데 굉장히 자세한 예제를 들어 설명해주셔서 많은 정보를 익히고 갑니다. 감사합니다 ㅎㅎ

우분투 15.04가 세상에 태어난지 한 분기가 지나고 있습니다.

집에 설치한 지는 이틀이 지났군요.

이틀 동안 우분투 15.04에서만 볼 수 있는 다양한 문제 상황을 접할 수 있었습니다.


삼바설정툴도 문제를 일으키네요.

우분투를 처음 사용할 때부터 함께 해온 system-config-samba도 실행이 안됩니다.

GUI로 실행하면 그냥 먹통이 되네요.

GUI 툴이 크래쉬가 난다고 하여, 특별한 노티가 발생하진 않습니다.

그래서 한참을 기다렸습니다만 크래쉬가 나는 상황이었습니다.

터미널에서 실행하면 바로 죽는 것을 확인할 수 있네요.



우선, 삼바설정과 관련된 내용은 아래 포스팅을 참고하세요.

[Ubuntu/Linux] 삼바서버, 이렇게 설정하면 된다


우분투 15.04가 아닌 분들은 걱정하실 필요가 없습니다.

오직 15.04에서 삼바설정툴을 실행할 때만 발생합니다.


삼바서버설정툴을 아래와 같이 다운로드 받아야겠지요?

$ sudo apt-get install system-config-samba
패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  libatk-wrapper-java libatk-wrapper-java-jni libgconf2-4 libgif4 libice-dev
  libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev
  libxdmcp-dev libxt-dev python-dateutil python-deltarpm python-keyring
  python-secretstorage x11proto-core-dev x11proto-input-dev x11proto-kb-dev
  xorg-sgml-doctools xtrans-dev
Use 'apt-get autoremove' to remove them.
다음 패키지를 더 설치할 것입니다:
  libglade2-0 libuser1 python-glade2 python-gtk2 python-libuser
제안하는 패키지:
  python-gtk2-doc
다음 새 패키지를 설치할 것입니다:
  libglade2-0 libuser1 python-glade2 python-gtk2 python-libuser
  system-config-samba
0개 업그레이드, 6개 새로 설치, 0개 제거 및 2개 업그레이드 안 함.
1,011 k바이트 아카이브를 받아야 합니다.
이 작업 후 8,799 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y


그리고 바로 실행을 시켜보면 에러메시지를 확인하실 수 있습니다.

$ sudo system-config-samba 

(system-config-samba:4881): IBUS-WARNING **: The owner of /home/storycompiler/.config/ibus/bus is not root!
Traceback (most recent call last):
  File "/usr/sbin/system-config-samba", line 45, in <module>
    mainWindow.MainWindow(debug_flag)
  File "/usr/share/system-config-samba/mainWindow.py", line 121, in __init__
    self.basic_preferences_win = basicPreferencesWin.BasicPreferencesWin(self, self.xml, self.samba_data, self.samba_backend, self.main_window)
  File "/usr/share/system-config-samba/basicPreferencesWin.py", line 97, in __init__
    self.admin = libuser.admin()
SystemError: could not open configuration file `/etc/libuser.conf': 그런 파일이나 디렉터리가 없습니다


중요한 에러는 제일 마지막 줄에 표시가 되었네요.

/etc/libuser.conf 설정파일이 없기 때문에 에러로 죽고 있습니다.

파일 이름만 봐서는 유저설정파일로 보이는데,

삼바설정툴에서 설정 파일의 존재를 따져보아 없으면 추가하는 루틴을 넣었으면 더 좋지 않았을까 싶네요.


간단하게 없는 파일을 생성해봅니다.

$ sudo touch /etc/libuser.conf


libuser.conf 파일이 생성되면 이제 삼버설정툴을 실행할 수 있습니다.

$ sudo system-config-samba


너무... 쉬워서 허무하셨을지도 모르겠네요.

그럼 좋은 하루 보내세요~

끝_


  1. 누더기 2016.12.24 16:28 신고

    간만에 삼바 설치하다가 식겁했는데 덕분에 금방 해결했네요. 감사합니다~

  2. 도움이 되셨다니 다행입니다 :)

데스크탑 PC를 한 대 사서 우분투를 설치하였습니다.

가물가물한 기억을 더듬어서 환경설정을 하고 있습니다.

기본적인 환경설정에만 꼬박 하루가 지나가네요.


사실 윈도우 PC에는 이미 타이젠 SDK가 설치되어 있습니다.

하지만, 윈도우에서는 개발하는 손맛이 나질 않아 우분투에도 타이젠 SDK를 설치하려고 합니다.

타이젠 SDK를 설치하는 과정 자체에는 어려운 것이 전혀 없으나,

타이젠 SDK를 위한 우선 설치해야하는 것들이 있습니다.



안녕하세요, Tizen 개발자 윤진입니다.


만약 타이젠 SDK를 윈도우에 설치하시려면 아래 포스팅을 참고해주세요.

[Tizen] 타이젠 SDK 윈도우에 설치하기, "생각보다 쉽다"


타이젠 SDK는 이클립스를 사용하고 있기 때문에 오라클 JDK를 설치해야합니다.

우분투 환경에서는 open jdk도 받을 수 있으나,

open jdk로는 이클립스를 구동할 수 없습니다.

반드시 오라클에서 배포하는 JDK 받으셔야 이클립스를 제대로 실행할 수 있습니다.


여기를 눌러 오라클 홈페이지에 들어갑니다.

2015. 6. 30 현재 가장 최신은 Java SE Development Kit 8u45 버전입니다.



위의 화면에서 "Accept License Agreement"를 눌러서 라이센스에 동의해주세요.

라이센스에 동의해야만 jdk를 다운로드 받을 수 있습니다.

우분투는 Linux x86(32비트)이나 Linux x64(64비트)를 다운로드 받으셔야 합니다.

여기서는 64비트용 jdk-8u45-linux-x64.tar.gz를 다운로드 받겠습니다.

오라클이 서버를 만드는 회사이니 만큼 다운로드 하나는 확실하게 그리고 빠르게 되네요. :)


다운로드가 완료되었으면 우선 압축부터 풀어야 합니다.

$ tar xvzf jdk-8u45-linux-x64.tar.gz


그리고 압축이 풀린 디렉토리를 통째로 옮깁니다.

$ sudo mkdir -p /usr/lib/jvm/jre1.8.0
$ sudo mv jdk1.8.0_45/* /usr/lib/jvm/jre1.8.0/


자바는 openjdk와 oracle jdk처럼 버전이 다양하기 때문에,

좀 전에 다운로드받은 oracle jdk가 실행될 수 있도록 설정해줍니다.

$ sudo update-alternatives --install <link> <name> <path> <priority>
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.8.0/bin/java 0

곧, /usr/bin/java에 좀 전에 다운로드받은 /usr/lib/jvm/jre1.8.0/bin/java의 링크를 만들어두는 것이지요.


그리고 우분투 파이어폭스에서도 자바를 사용할 수 있도록 자바플러그인을 복사합니다.

$ mkdir ~/.mozilla/plugins
$ ln -s /usr/lib/jvm/jre1.8.0/lib/i386/libnpjp2.so ~/.mozilla/plugins/


마지막으로 추가로 필요한 패키지 몇 개를 설치합니다.

$ sudo apt-get install expect gtk2-engines-pixbuf libgnome2-0 qemu-user-static libwebkitgtk-1.0-0 gettext gksu module-init-tools libudev-dev libsdl1.2debian ruby
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
gettext 패키지는 이미 최신 버전입니다.
libgnome2-0 패키지는 이미 최신 버전입니다.
libgnome2-0 패키지 수동설치로 지정합니다.
module-init-tools 패키지는 이미 최신 버전입니다.
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  libatk-wrapper-java libatk-wrapper-java-jni libgconf2-4 libgif4 libice-dev
  libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev
  libxt-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xorg-sgml-doctools
  xtrans-dev
Use 'apt-get autoremove' to remove them.
다음 패키지를 더 설치할 것입니다:
  libgksu2-0 libjavascriptcoregtk-1.0-0 libudev1 libwebkitgtk-1.0-common tcl-expect udev
다음 새 패키지를 설치할 것입니다:
  expect gksu gtk2-engines-pixbuf libgksu2-0 libjavascriptcoregtk-1.0-0 libudev-dev
  libwebkitgtk-1.0-0 libwebkitgtk-1.0-common qemu-user-static tcl-expect
다음 패키지를 업그레이드할 것입니다:
  libudev1 udev
2개 업그레이드, 10개 새로 설치, 0개 제거 및 146개 업그레이드 안 함.
18.6 M바이트/19.6 M바이트 아카이브를 받아야 합니다.
이 작업 후 130 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n]


이제 타이젠 SDK 설치를 위한 준비가 끝났습니다.

타이젠 홈페이지에 방문하여 SDK를 다운로드 받습니다.



DOWNLOAD THE SDK 버튼을 누르면 Tizen SDK를 받을 수 있는 페이지가 나옵니다.

아래 페이지에 표시된 화살표 링크를 눌러 운영체제에 맞는 SDK를 고를 수 있습니다.



여기서는 64비트 우분투용 tizen-sdk_2.3.63_ubuntu-64.bin를 다운로드 받겠습니다.

다운로드 받으시고 실행권한을 주셔야 합니다.

$ chmod +x tizen-sdk_2.3.63_ubuntu-64.bin

그리고 바로 실행해보시지요.


만약, 설치가 여전히 안된다면 openjdk 때문일겁니다.

openjdk를 사용하실 필요가 없다면 지우셔도 무방합니다.

$ sudo rm -rf /usr/lib/jvm/java-8-openjdk-amd64



Install > Advanced에 들어가서,

- Package server : SDK이미지를 서버에서 내려받거나,

- SDK Image : 이미 다운로드받은 이미지로 설치할 수 있습니다.

여기서는 Package server를 선택합니다.

그리고 Install을 누르면 다음 항목으로 넘어갑니다.



여기서는 mobile & wearable을 모두 설치할 것이므로 Custom 버튼을 누릅니다.

라디오 버튼이 체크박스로 바뀌면,

Mobile-2.3 / Wearable-2.3 / Other tools를 모두 체크합니다.

다음으로 넘어가면 라이센스 항목이 나옵니다.



라이센스를 자세히 읽어보시고...

I agree 버튼을 눌러 다음으로 넘어가세요.



기본적으로 Installation Location은 ~/tizen-sdk로 되어 있고,

Data Location은 ~/tizen-sdk-data로 되어 있습니다.

다른 경로를 원하시면 변경하실 수 있습니다.

여기서는 그대로 사용하도록 하겠습니다.

이제 Install 버튼을 누르면 설치가 됩니다.

서버로부터 패키지를 다운로드 받고 설치하기 때문에 서버 상태에 따라 시간이 많이 걸릴 수도 있습니다.


설치가 완료되면 바로 Tizen SDK를 사용하실 수 있습니다.

개발의 재미에 빠져보세요~


끝_

  1. 앨리삵 2015.10.05 20:25 신고

    우분투에서 타이젠 빌드하려고 고군분투중입니다.
    한줄기 빛과 같은 블로그 포스팅 감사해요 ㅠㅅㅠ

  2. 정말 멋진 홈피를 가지고 계십니다! :)
    그래픽스 전문가에게 직접 배운다는 생각으로 열심히 방문해야겠습니다. 하핫.

터미널에 단조롭거나 혹은 촌스럽게 표시되는 색상에서 벗어나려고,

터미널 편집창을 열어 컬러값을 임의로 조정해보았습니다.

하지만, 헛짓이었습니다;


색상 하나하나를 그럴듯하게 골라놓아도,

색상 전체가 조화롭게 어우러지지 않더군요.


이런 색상 선택을 고민한 것은 저 하나가 아닐 것입니다.

컬러감 출중한 수많은 개발자들이 최적의 조합을 찾기 위해 무수히 노력하였습니다.


그리고 하나의 색상 조합으로 중지가 모아지고 있습니다.

그게 바로 solarized 파레트입니다.

색상이 아주 기가 막히네요. :)



solarized는 terminal과 gui 앱에 최적화된 색상을 찾아보자는 착상에서 시작하였습니다.

무수한 색상의 조합을 두고 고민하였죠.

그리고 그 결과로 16개의 색조합을 창출해내었습니다.

색조합에 대한 고민은 아래 사이트에서 엿볼 수 있습니다.

http://ethanschoonover.com/solarized


solarized 색조합을 우분투 터미널 환경에 적용해보기로 하겠습니다.

gnome-terminal, vim, ls 세 군데에 적용하면,

시스템 전체가 달라 보일 겁니다.


gnome-terminal, vim, ls 세 개는 개별적인 프로그램이기에 각각 컬러설정을 해야합니다.

gnome-terminal, vim, ls 순서로 설명하겠지만,

실제 설치 순서는 대세에 영향을 주지 않으므로 원하는 대로 설치하시면 됩니다.

참고로 vim을 컬러설정을 위해서는 반드시 gnome-terminal도 해주세요.


우선 gnome-terminal에 별도의 프로파일을 새로 만드는게 좋습니다.

만에 하나 색상이 맘에 들지 않을 경우 기존 프로파일로 돌아가야지요.

gnome-terminal이 활성화된 상태에서,

상단바 > 편집 > 프로파일 메뉴에 진입합니다.



위에서 "새로 만들기" 버튼을 눌러 새 프로파일 창을 띄웁니다.

프로파일 이름은 원하시는 것으로 적으세요.



여기서는 solarized라는 프로파일을 만들겠습니다.

기본 프로파일은 Default로 지정하시면 됩니다.

"만들기" 버튼을 눌러 프로파일을 생성하세요.



solarized 프로파일이 생성되었습니다.

하단에서 "새 터미널을 실행할 때 사용할 프로파일"을 solarized로 선택합니다.

앞으로 gnome-terminal을 띄울 때 solarized 프로파일에 설정한 컬러파레트를 사용할 겁니다.


gnome-terminal에 solarized 컬러 파레트를 적용하려면 gnome-terminal용 패키지를 설치해야합니다.

아래 주소에 들어가서 오른 편 Download ZIP 버튼을 눌러 압축파일을 받습니다.

https://github.com/Anthony25/gnome-terminal-colors-solarized



2015. 6. 15 기준으로 최신 패키지를 아래에 첨부합니다.

gnome-terminal-colors-solarized-master.zip

패키지를 받고 압축을 풀어보겠습니다.


$ unzip gnome-terminal-colors-solarized-master.zip 
Archive:  gnome-terminal-colors-solarized-master.zip
789f3a13210ccd98c12020f94f2a96ca3346a636
   creating: gnome-terminal-colors-solarized-master/
  inflating: gnome-terminal-colors-solarized-master/LICENSE.mkd 
  inflating: gnome-terminal-colors-solarized-master/README.mkd 
   creating: gnome-terminal-colors-solarized-master/colors/
   creating: gnome-terminal-colors-solarized-master/colors/dark/
  inflating: gnome-terminal-colors-solarized-master/colors/dark/README.md 
  inflating: gnome-terminal-colors-solarized-master/colors/dark/bd_color 
 extracting: gnome-terminal-colors-solarized-master/colors/dark/bg_color 
 extracting: gnome-terminal-colors-solarized-master/colors/dark/fg_color 
  inflating: gnome-terminal-colors-solarized-master/colors/dark/palette 
   creating: gnome-terminal-colors-solarized-master/colors/dark_alternative/
  inflating: gnome-terminal-colors-solarized-master/colors/dark_alternative/README.md 
  inflating: gnome-terminal-colors-solarized-master/colors/dark_alternative/bd_color 
 extracting: gnome-terminal-colors-solarized-master/colors/dark_alternative/bg_color 
 extracting: gnome-terminal-colors-solarized-master/colors/dark_alternative/fg_color 
  inflating: gnome-terminal-colors-solarized-master/colors/dark_alternative/palette 
   creating: gnome-terminal-colors-solarized-master/colors/light/
  inflating: gnome-terminal-colors-solarized-master/colors/light/README.md 
 extracting: gnome-terminal-colors-solarized-master/colors/light/bd_color 
 extracting: gnome-terminal-colors-solarized-master/colors/light/bg_color 
 extracting: gnome-terminal-colors-solarized-master/colors/light/fg_color 
  inflating: gnome-terminal-colors-solarized-master/colors/light/palette 
  inflating: gnome-terminal-colors-solarized-master/install.sh 
  inflating: gnome-terminal-colors-solarized-master/set_dark.sh 
  inflating: gnome-terminal-colors-solarized-master/set_light.sh 
   creating: gnome-terminal-colors-solarized-master/src/
  inflating: gnome-terminal-colors-solarized-master/src/dircolors.sh 
  inflating: gnome-terminal-colors-solarized-master/src/profiles.sh 
  inflating: gnome-terminal-colors-solarized-master/src/set_theme_default_profile.sh 
  inflating: gnome-terminal-colors-solarized-master/src/tools.sh


다양한 파일이 쏟아져 나오네요,

새로운 터미널창을 열고 install.sh를 실행해주세요.


$ ./install.sh 

This script will ask you which color scheme you want, and which Gnome Terminal profile to overwrite.

Please note that there is no uninstall option yet. If you do not wish to overwrite any of your profiles, you should create a new profile before you run this script. However, you can reset your colors to the Gnome default, by running:

    Gnome >= 3.8 dconf reset -f /org/gnome/terminal/legacy/profiles:/
    Gnome < 3.8 gconftool-2 --recursive-unset /apps/gnome-terminal

By default, it runs in the interactive mode, but it also can be run non-interactively, just feed it with the necessary options, see 'install.sh --help' for details.

Please select a color scheme:
1) dark
2) dark_alternative
3) light
#? 1

Please select a Gnome Terminal profile:
1) Default
2) solarized
#? 2

You have selected:

  Scheme:  dark
  Profile: solarized (Profile0)

Are you sure you want to overwrite the selected profile?
(YES to continue) YES
Confirmation received -- applying settings


solarized 설정과 관련된 세가지 질문이 나옵니다.

첫번째는 dark / dark_alternative / light 파레트 중 무엇을 선택하겠느냐는 질문입니다.

터미널 환경에서는 dark가 익숙하기에 여기서는 1번을 선택하였습니다.

두번째에는 파레트를 적용할 터미널 프로파일을 선택해야합니다.

좀 전에 만들어둔 solarized 프로파일을 선택합니다.

세 번째에는 solarized 프로파일에 파레트를 덮어쓰겠냐는 질문입니다.

YES를 입력합니다.

그러면 바로 새로 실행한 터미널에 새로운 컬러파레트가 적용된 것을 보실 수 있습니다.


일부러 색상이 적용되는 파일들을 검색하여 보았습니다.

기본 바탕색과 전경색이 편하게 보입니다.


이번에는 vim에 컬러를 적용해보도록 하겠습니다.

https://github.com/altercation/solarized

위의 사이트에 접속하여 오른편 Download ZIP 버튼을 눌러 vim용 패키지를 받습니다.




2015. 6. 15 기준으로 최신 패키지는 11메가가 넘네요.

vim에 필요한 부분만 압축하여 첨부합니다.

vim-colors-solarized.zip

사이트에서 제공하는 파일이나 첨부된 파일을 다운로드 받으신 후,

unzip 으로 압축을 풀어주세요.

그리고 아래 명령을 수행하면 vim에 대한 설정이 완료됩니다.


$ cd vim-colors-solarized/colors
$ mkdir -p ~/.vim/colors $ mv solarized.vim ~/.vim/colors/


~/.vimrc 파일에 위에서 설치한 solarized를 enable 시켜주세요.

만약 다른 colorscheme을 사용하고 있다면 다른 colorscheme은 주석처리하거나 지워주세요.


syntax enable
set background=dark
colorscheme solarized


이제 vim에도 solarized가 적용되었습니다.

만약 아직 gnome-terminal용 solarized를 적용하지 않았다면, vim에 solarized 파레트가 적용되지 않을 수 있습니다.

왜냐하면 ~/.vim/colors/solarized.vim 파일에는,

아래처럼 터미널에 설정된 파레트값을 참조하는 부분이 있기 때문입니다.


    let s:vmode       = "cterm"
let s:bright = "* term=bold cterm=bold"
let s:base03 = "DarkGray" " 0*
let s:base02 = "Black" " 0
let s:base01 = "LightGreen" " 2*
let s:base00 = "LightYellow" " 3*
let s:base0 = "LightBlue" " 4*
let s:base1 = "LightCyan" " 6*
let s:base2 = "LightGray" " 7
let s:base3 = "White" " 7*
let s:yellow = "DarkYellow" " 3
let s:orange = "LightRed" " 1*
let s:red = "DarkRed" " 1
let s:magenta = "DarkMagenta" " 5
let s:violet = "LightMagenta" " 5*
let s:blue = "DarkBlue" " 4
let s:cyan = "DarkCyan" " 6
let s:green = "DarkGreen" " 2


gnome-terminal과 vim에 solarized를 적용한 상태에서,

C코드를 열면 아래처럼 보이게 되지요.



이제 마지막으로 ls에도 solarized를 적용해보겠습니다.

아래 주소에 방문하여 오른편 Download ZIP 버튼을 누릅니다.



2015. 6. 15 기준으로 최신 패키지를 아래에 첨부합니다.

dircolors-solarized-master.zip

패키지를 받아 unzip으로 압축을 풀어주세요.


우분투 14.04 이후 버전에서는 그저 아래 명령어만 수행하면 됩니다.

$ cp dircolors-solarized-master/dircolors.256dark ~/.dircolors

그 외의 버전에서는,

$ cp dircolors-solarized-master/dircolors.256dark ~/.dircolors

위처럼 복사를 하신 후,

$ vi ~/.profile에 한 줄을 추가해주세요.

eval `dircolors ~/.dircolors`


그리고 ls를 사용하면 아래처럼 좀 더 컬러풀한 화면을 볼 수 있습니다.


설정된 컬러 파레트가 맘에 드셨으면 좋겠네요.

그럼 좋은 하루 보내세요~


끝_


* References

http://ethanschoonover.com/solarized

https://github.com/altercation/solarized

https://github.com/Anthony25/gnome-terminal-colors-solarized

https://github.com/seebi/dircolors-solarized

  1. thx 2015.06.27 19:35

    우왓 정말 감사합니다. ^^

  2. thx 2015.06.27 19:51

    엇 지금 계시는군요 ^^

    우연히 방문했지만 블로그 관리가 정말 잘되어 있네요. 정보도 많고요.

    지금 한창 눈팅하는 중입니다.

    이번 방학기간동안 알고리즘 공부도 하고, algospot 문제 풀면서 vim에 적응해나가야겠네요 ^^

    구경 잘하다가 갈께요 종종 들릴게요. 감사합니다

    • thx님, 감사합니다~!
      방학을 언급하신걸 보니, 학생이신가 보군요.
      7월이 다가오니 정말 방학이 그리워집니다.
      하는 공부마다 결실을 거두시길...
      종종 오세요~

사용자 계정으로 로그인한 후

간혹 관리자 root 권한이 필요할 때가 있습니다.


패키지를 설치하거나,

시스템 설정 파일을 수정하거나,

신규유저를 추가하거나,

다른 계정으로 파일권한을 변경하거나

root 권한을 광범위하게 사용하고 있습니다.


root 권한으로 변경할 때 가장 친숙한 명령어가 su입니다.



su는 substitute user의 줄임말입니다.

현 사용자를 로그아웃하지 않고, 다른 사용자의 권한을 획득할 때 사용하죠.

단일 사용자계정으로 우분투 데스크탑을 사용하고 있는 경우에도,

사용자의 권한을 루트로 변경할때 자주 사용합니다.


사용법 : su [변경하고자 하는 사용자 ID]


su 뒤에 변경할 사용자 ID를 입력하지 않는다면,

su root와 동일하게 동작합니다.


$ su
Password: 
# exit
logout
$


위처럼 일반계정쉘 $이 보이다가,

su root로 변경된 후 관리자계정쉘 #로 변경되는 것을 볼 수 있습니다.


하지만 su 뒤에 -를 붙이면 동작방식이 달라집니다.

‘-’의 의미는 무엇일까요?


‘-’

‘-l’

‘--login’

Make the shell a login shell. This means the following. Unset all environment variables except TERM, HOME, and SHELL (which are set as described above), and USER and LOGNAME (which are set, even for the super-user, as described above), and set PATH to a compiled-in default value. Change to user's home directory. Prepend ‘-’ to the shell's name, intended to make it read its login startup file(s). 


‘-’는 -l 혹은 --login과 동일한 명령어입니다.

곧, su -는 su --login root와 동일한 명령인 셈입니다.

위의 설명에서 언급되어 있듯,

‘-’의 유무는 환경변수와 워킹디렉토리에 영향을 줍니다.



위의 표를 하나씩 살펴보기로 하죠.

환경변수 TERM, HOME, SHELL, USER, LOGNAME는,

su나 su -나 모두 변경된 사용자 ID에 맞게 재설정됩니다.


HOME과 SHELL은  /etc/passwd에서 변경할 사용자의 정보를 가져와서 설정합니다.

USER와 LOGNAME은 변경할 사용자계정을 입력하지요.


PATH는 su에선 변경 전후가 동일하지만,

su -에선 PATH가 컴파일시 설정한 default 값으로 설정됩니다.


그 외의 환경변수는 분명한 차이가 있죠.

su는 기존 사용자 환경에서 설정된 환경변수를 그냥 그대로 유지합니다.

그에 반해, su -는 기존 사용자 환경에서 사용하던 환경변수를 모두 지워버립니다.


$ export hello=tizen
$ su
암호:  # echo $hello tizen # exit $ su - # echo $hello (null)

위의 예를 살펴보시죠.

기존 사용자 계정에서 hello라는 변수에 tizen이라는 값을 넣어두었습니다.

그리고 su로 관리자 계정으로 변경합니다.

su는 기타 환경변수를 유지하기 때문에 hello의 환경변수값이 tizen으로 나오겠지요?

위의 예에서도 echo $hello를 하니 tizen이 나오네요.


그리고 exit하여 원래 계정으로 복귀한 후,

이번엔 su -를 합니다.

그리고 echo $hello를 해봅니다.

이번에는 아무 것도 나오지 않네요.

--login 옵션으로 환경변수가 정리되었기 때문입니다.


그리고, su는 워킹디렉토리를 변경하지 않습니다.

반면 su -는 변경한 사용자 계정의 홈디렉토리로 이동하게 됩니다.


$ pwd
/tmp
$ su
암호: 
# pwd
/tmp
# exit
exit
$ su -
암호: 
# pwd
/root


최초에 /tmp 디렉토리에 있었고,

su를 해도 여전히 /tmp에 머물고 있습니다.

하지만, su -를 하면, 관리자 계정의 홈디렉토리인 /root로 이동하게 됩니다


위의 차이점을 알고 사용하면 됩니다.

워킹디렉토리는 cd로 변경하면 그만이니,

환경변수 설정부분만 유의하면 되겠네요.

환경변수는 빌드/실행에 영향을 줄 수 있으니까요.


끝_



* References

http://ko.wikipedia.org/wiki/Su_%28%EC%9C%A0%EB%8B%89%EC%8A%A4%29

http://www.gnu.org/software/coreutils/manual/html_node/su-invocation.html



사무실 책상에 지급받은 컴퓨터 2대가 놓여있었습니다.

모니터도 두 개,

키보드도 두 개,

마우스도 두 개가 있었습니다.

이것만으로도 책상 위가 가득 차서 연습장 하나 펼쳐놓거나 책을 뒤적거리기가 힘들었죠.


키보드는 기본적으로 자리를 많이 차지했고,

마우스는 작지만 움직일 수 있는 공간이 필요했습니다.

이러한 도구들이 2개씩 필요했죠.


이 즈음 누군가에게 소개를 받았었나,

아니면 구글링으로 수많은 시행착오 끝에 찾았내었거나,

어쨌든 시너지를 만나게 되었습니다.

그 후로 쭉 시너지를 사용하고 있으니 꽤나 시간이 많이 흘렀네요.


Synergy는 최근에 유료로 전환되었습니다.

최신 버전을 다운로드 받으려면 $10를 내야 하죠.



한 번 구매하면 평생 사용할 수 있습니다.

컴퓨터마다 $10도 아니고,

실제 사용하는 사람당 $10이기 때문에,

여러 집에서도, 회사에서도 어디서나 사용할 수 있습니다.


그 동안은 무료로 다운로드 받을 수 있었으나,

실제로 다운로드 받는 수에 비해 기부 횟수가 적었다고 합니다.

0.002%라고 하니 100,000명 당 2명이 기부했네요.

이제라도 열심히 사줘야할 것 같습니다 :)


0.002% 얘기를 하고 바로 이런 얘기를 하는 것은 미안하지만,

Synergy를 무료로 사용하는 방법은 2가지가 있습니다.

- 과거 무료로 제공되던 버전을 받아 사용하기

- 최신 버전을 직접 빌드해서 사용하기


두 가지 경우를 모두 포스팅하도록 하겠습니다.

우선 여기서는 과거 무료로 제공되던 버전을 받아 시스템에 적용해보도록 해보겠습니다.


한 대는 윈도우7이고 다른 한 대는 우분투 14.04 환경입니다만,

시너지 설정환경은 운영체제를 막론하고 모두 비슷하기 때문에,

다른 운영체제에서도 설정방법은 거의 똑같습니다.

Synergy 팀이 보다 단순한 인터페이스를 위해 굉장히 고민한 결과라 생각합니다.



무료로 제공되는 Synergy는 2014. 5. 16에 나온 1.4.18 버전입니다.

최신 버전은 2015. 6. 6 기준으로 1.7.4까지 나왔습니다.

유료화된 이후에 버전을 상당히 많이 끌어올렸네요.

무료 버전은 여기에서 다운로드 받으실 수 있습니다.


윈도우는 64 bit / 32 bit를 선택해주어야 합니다.

시작 > 컴퓨터 > (마우스 오른버튼) > 속성

위의 경로로 진입하면 시스템 종류를 확인할 수 있습니다.



이 포스팅에서는 64비트 윈도우 버전을 설치하기로 하겠습니다.

윈도우 시스템이 32비트인 분들은 32비트 버전을 다운로드 받아주세요.


다운로드 받은 후,

설치를 하면 보안경고 창이 뜰 수도 있는데,

그냥 실행하시면 됩니다.

믿을 만한 오픈소스이니까요. :)



환영 메시지를 보실 수 있습니다.

Synergy에서 지원하는 시스템 정보가 다시 한 번 나옵니다.



잠시 위의 화면처럼 시스템에 잔여공간을 확인하고,

Next 버튼이 활성화됩니다.

Next 버튼을 눌러 다음으로 넘어갑니다.

라이센스와 관련된 사항이 나옵니다.



내용을 잠깐 살펴보겠습니다.

GNU GENERAL PUBLIC LICENSE


Version 2, June 1991


...


2. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

3. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

(a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

(b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

(c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

4. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

(a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

(b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

(c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

...


GPL version 2에 의해 운영되고 있습니다.

오픈소스가 대단한 것은,

프로그램을 copy하고 배포하는 행위를 라이센스를 통해 허용하고 있다는 것이겠죠.

시간이 되면 전문을 한 번 읽어보고,

"I accept the terms in the License Agreement"에 체크하고 Next 버튼을 누릅니다.



자신의 환경에 맞게 설치위치를 선택합니다.

디폴트로 선택된 디렉토리에 선택하셔도 무방합니다.

Next 버튼을 눌러 다음으로 갑니다.



이제 설치준비가 다 되었습니다.

Install을 눌러 설치를 시작합니다.

간단한 프로그램이기 때문에 설치는 순식간에 끝날겁니다.



Finish를 누르면 Setup 창이 종료됩니다.

시작 > 프로그램 > Synergy

위처럼 진입하여 Synergy를 실행합니다.



한국어도 설정할 수 있지만,

번역이 어딘가 좀 이상하므로 English를 선택하도록 하겠습니다.

한국어를 선택하셔도 무방합니다.



Premium이 아니므로,

Not interested 버튼을 누르고 Next 로 넘어갑니다.



서버로 설정할 것인지 클라이언트로 설정할 것인지 선택해야 합니다.

몇 대의 컴퓨터에 Synergy를 돌리던 서버는 한 대만 설정해주면 됩니다.

서버의 마우스와 키보드로 클라이언트 컴퓨터에 접근할 수 있게 되는거죠.


서버에 설정방법이 그나마 까다롭고(쉽습니다),

클라이언트는 더더욱 쉽게 설정이 가능하기 때문에,

우선 서버로 선택하여 설명하겠습니다.

우분투를 서버로 선택하셔도 무방합니다.



집에서만 사용하려면 암호화과정 없이 바로 사용하시면 됩니다.

여기서는 암호를 사용해보도록 하겠습니다.

Enable encryption을 누르고 암호를 칩니다.

그리고 Finish 버튼을 누릅니다.



위처럼 메인화면이 뜨게 됩니다.

앞으로 Synergy를 실행하면 위의 화면을 보실 수 있을 겁니다.


윈도우를 서버로 운영할 예정이기 때문에,

Server 체크박스에 체크를 합니다.

IP는 자동으로 입력이 됩니다.

Configure interactively 버튼을 활성화 시킨 후,

Configure Server 버튼을 누릅니다.



현재 PC가 가운데에 나타납니다.

그리고 14개의 빈칸이 있네요.

서버 PC를 중심으로 클라이언트의 상대위치를 입력합니다.

여기서는 윈도우 모니터보다 우분투 모니터가 물리적으로 오른편에 위치하고 있기 때문에

메뉴 오른편 상단의 모니터 아이콘을 끌어서 바로 오른편에 놓습니다.

최종적으로 설정이 완료되면,

마우스를 윈도우 화면 오른쪽 끝으로 가져가면, 우분투 화면 왼쪽 끝에 커서가 나타나게 되겠죠.



새로 추가한 모니터 아이콘에는 Unnamed라는 라벨이 붙어있습니다.

여기에 대한 자세한 정보를 추가해주어야 합니다.

Unnamed 아이콘을 더블클릭하여 세부설정 화면으로 진입합니다.



Screen name으로 클라이언트의 컴퓨터 이름을 지정합니다.

클라이언트의 컴퓨터 이름을 모르시면,

각 운영체제의 메뉴에서 컴퓨터 이름을 확인하실 수 있습니다.


우분투에서는,

종료버튼 > 이 컴퓨터 정보 > 장치이름

위에서 확인하실 수 있습니다.


아니면, 클라이언트에 시너지를 설치하면서 시너지메뉴에서 확인하실 수 있습니다.

이 부분은 아래 클라이언트에 시너지를 설치할 때 언급하도록 하겠습니다.

차후에 다시 돌아와서 변경할 수 있으니 걱정하지 마세요.


다른 설정은 그대로 놔두어도 상관없습니다.

일단 OK를 누르면 설정이 완료됩니다.

본 메인화면을 돌아갑니다.



위의 화면에서,

Start 버튼을 누르면 Synergy 서버가 동작을 시작합니다.


이제 우분투로 가서 설치&설정을 하도록 하겠습니다.

우분투에서 시스템종류는,

오른쪽 상단의 전원 버튼 > 이 컴퓨터 정보

위처럼 진입하여 OS 종류를 보면 알 수 있습니다.



여기서는 시너지 다운로드 사이트에서 32비트 우분투용 시너지를 다운로드 받겠습니다.

다운로드 받은 후 바로 실행하기를 누르면 우분투 소프트웨어 센터가 실행이 됩니다.



오른편 중간에 설치버튼을 누릅니다.

버튼 영역이 막대 그래프로 바뀌면서 설치를 시작합니다.

설치 중간에 관리자 모드로 접속해달라는 팝업이 뜨면 관리자암호를 입력해서 넘어가주세요.

설치가 완료되면 왼편 메뉴바에 Synergy 아이콘이 생성됩니다.

아이콘을 눌러 Synergy를 실행합니다.



윈도우에서 설치할 때와 동일하게 언어설정 창이 나타납니다.

한국어도 있으니 각자 편한 언어를 선택합니다.



프리미엄 창이 윈도우와 동일하게 나왔습니다.

역시, Not interested를 선택하고 Next 버튼을 누릅니다.



서버와 클라이언트를 설정할 수 있는 창이 나왔습니다.

윈도우를 서버로 설정하였으니 우분투는 클라이언트로 설정하도록 하겠습니다.

클라이언트를 설정하고 Next를 누릅니다.



서버에서도 암호화를 설정하였었죠.

클라이언트에서도 동일한 패스워드로 encryption을 설정합니다.

설정 후 Finish 버튼을 눌러줍니다.



위처럼 메인메뉴에 진입할 수 있습니다.

Client가 이미 체크되어 있는 것을 확인할 수 있습니다.

Screen name으로 되어 있는 부분이 클라이언트의 스크린이름입니다.

서버쪽 Synergy에서 아직 클라이언트 스크린이름을 입력하지 않으신 분들은,

위의 값을 참조하여 입력하시면 됩니다.

서버 IP를 입력하시고 Start를 누르면,

서버쪽 키보드와 마우스로 접근이 가능해집니다.


Synergy를 사용하면 책상이 많이 단촐해집니다. :)

$10 이상의 값어치를 하죠.


끝_



  1. 꿀사냥꾼 2016.03.15 06:06

    오~~ 좋은 꿀팁 감사감사...

  2. 2016.07.26 20:41

    시너지로인해서 피해를 얼마 보았는지 함부로 맘대로 지꺼인마냥 이런게 시너지라 하시면 참 어이없음

    • 시너지로 인해 불쾌한 경험을 하신 것으로 보이네요. 저 또한 시너지를 설치가 제대로 안되어 무수히 삽질을 하였는데요. 시너지를 사용하시고자 하는 분들에게 조금이나마 도움이 되길 바라는 마음으로 포스팅하였습니다.
      인생사가 늘 마음대로 되지는 않지만 즐거운 일만 가득하시길 기원합니다.

  3. ryan 2016.12.26 00:51

    혹시 클라이언트측 컴퓨터에서 메모장 열고 대문자 전환 시 쉬프트키 작동하는지 궁금합니다.

    • 안녕하세요. 지금 러시아에서 생활하고 있어서, 기억이 가물가물한데요. 제 경우에는 쉬프트키로 인한 불편은 없었습니다. 다만 한영 전환시 쉬프트가 안되어 컨트롤 + 스페이스로 이용했어요. :)

  4. newbornking87@gmail.com 2017.03.12 00:47

    ubuntu 랑 window에서 할때 ubuntu에서 shift 키가 안먹히네요

인트라넷을 구축하고 있는 회사 혹은 군대에서는

인트라넷 외부에 있는 네임서버에 접근하지 못할 수 있습니다.

그럴 경우, 인트라넷망 내부에 있는 네임서버를 통해 주소를 얻어와야겠지요.


우분투가 나오기 전에는,

/etc/resolv.conf 혹은

/etc/network/interfaces 파일을 수정하여 DNS 서버를 설정한 기억이 납니다.


하지만, 우분투에서는 위의 설정파일 대신에 손쉽게 네트워크를 설정할 수 있는 GUI 툴을 제공합니다.

우분투 검색창에서 '네트워크' 혹은 'network'로 검색을 해봅니다.



프로그램에 '네트워크'가 보일겁니다.

'네트워크' 프로그램에서 설정한 값들은 온갖 환경설정 파일에서 설정한 것보다 우선순위가 높습니다.



네트워크 프로그램에서는 '유선'과 '네트워크 프록시'에 대한 항목이 있네요.

'유선'의 내용을 살펴보면,

IP 주소, 라우팅 그리고 네임서버를 설정할 수 있게 되어 있습니다.

옵션을 눌러 설정팝업창을 띄웁니다.



수동으로 설정할 경우,

IP 및 DNS 서버를 새롭게 등록할 수 있습니다.


DHCP는 자동으로 내려받는 DNS 서버 외에 새로운 서버를 추가할 수 있습니다.

IPv4 설정탭 > 추가 DNS 서버(V)

위의 설정에 추가하고자 하는 DNS 서버를 입력합니다.

여기서는 "208.67.222.222", "208.67.220.220" 두개의 DNS 서버를 등록합니다.


만약에, 위처럼 네트워크 프로그램을 이용하는 대신 고전스타일로 설정하고자 하면,

/etc/resolvconf 디렉토리를 이용해야 합니다.


기존처럼 /etc/resolv.conf를 사용해도 소용이 없습니다.

왜냐하면, 우분투가 12.04 부터 /etc/resolvconf 디렉토리와 /etc/network/interfaces 등을 종합하여,

/etc/resolv.conf를 덮어씌워 새로 만들기 때문이지요.


$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1


그 대신 아래와 같이 resolvconf 디렉토리에 있는 base 파일에 DNS 서버를 설정하면,

/etc/resolv.conf에 설정내용이 반영됩니다.


$ cat /etc/resolvconf/resolv.conf.d/base
nameserver 208.67.222.222


수정 직후에는 네임서버에 수정한 내용을 아래처럼 반영합니다.

$ sudo resolvconf -u


네임서버가 제대로 설정되었다면,

도메인 네임으로 사이트에 접근할 수 있습니다.


끝_


* References

http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-resolving

대학교 여름특강으로 리눅스 강의를 들었던 기억이 나네요.

말총머리를 한 꽤나 마른 강사분이 열심히 수업을 하셨었죠.


강의 첫 날, 두꺼운 리눅스 책을 한 권 던져주시며 한달 동안 전부 다룰거라고 하셨죠.

그 두꺼운 리눅스 책의 한 챕터가 삼바서버였습니다.

당시에는 서버를 구축할 필요가 없어서 건성으로 흘리며 수업을 들었습니다.


하지만, 시간이 흘러 신입사원이 되었을때,

회사에서 제일 먼저 한 일 중 하나가 삼바서버를 구축하는 것이었습니다.


개인용으로 지급된 컴퓨터가 2대였는데,

한 대는 윈도우, 다른 한 대는 리눅스 PC로 활용하였습니다.


업무를 하다보면,

윈도우와 리눅스 PC 간에 데이터를 교환을 해야할 일이 생기더군요.

그래서 리눅스 PC에 삼바 서버를 설치하였습니다.


현재 집에서도 회사에서처럼 한 대는 윈도우를 다른 한 대는 우분투를 사용하고 있습니다.

따라서 이 포스팅에서는 우분투 14.04와 윈도우7을 기준으로,

삼바서버 설정방법을 정리해볼까 합니다.


우분투 PC에 삼바서버를 설치하면,

윈도우 PC의 파일탐색기로 우분투 PC에 접근하여 파일을 읽고 쓸 수 있습니다.


이러한 일이 가능한 것은,

MS사가 윈도우 운영체제 간에 혹은 이종의 운영체제와 네트워크를 통해 파일을 공유하려고 분산 파일시스템 프로토콜을 개발하였고,

삼바서버는 그러한 분산 파일시스템을 지원하기 위해 개발되었기 때문이죠.


우선 리눅스 PC에 삼바서버를 설치해보죠.

$ sudo apt-get install samba



삼바를 설치하면 삼바설정파일이 생성됩니다.

삼바설정파일을 열어봅니다.

$ sudo vi /etc/samba/smb.conf


삼바설정파일은 크게 두 부분으로 구성되어 있습니다.

[global] 항목은 삼바서버 전체에 대한 설정을 할 수 있습니다.

[share] 항목은 개별적인 공유영역에 대한 설정을 할 수 있습니다.


[global] 항목에서 주의깊게 고민해야 하는 부분은 두 가지입니다.

1. hosts allow = 192.168.1.

삼바서버에 접근가능한 IP 대역을 선택할 수 있습니다.

위의 예는 192.168.1.0 ~ 192.168.1.255에서 오는 IP만 공유영역에 접근할 수 있습니다.

만약 모든 IP에 대해 접근을 가능하게 하려면 위의 항목을 주석처리해야만 합니다.


2. security = [share|user]

security 정책을 결정할 수 있습니다.

일반적으로 share 아니면 user를 사용합니다.

share는 인증받지 않은 사용자에게도 공유영역을 열어줍니다.

user는 오직 인증받은 사용자만 삼바서버에 접근할 수 있게 합니다.


[share] 항목은 [global]의 security를 무엇으로 설정했느냐에 따라 내용이 달라집니다.

security = share로 설정하면 공유영역을 아래처럼 설정하면 됩니다.

 

[share]

  comment = Share Directories

  path = [공유하고자 하는 디렉토리 절대경로]

  read only = no

  guest = ok


공유하고자 하는 디렉토리 절대경로를 적어주고,

read 권한만 열어주려면 read only = yes로 하고,

read / write 권한을 모두 주려면 read only = no로 해야 합니다.

write 권한을 주려면 공유영역에 아래처럼 리눅스 권한을 주어야 합니다.

$ chmod +w [공유하고자 하는 디렉토리 절대경로]


security = user로 설정하면,

- 공유영역을 아래처럼 설정하고

- 인증사용자가를 등록해야 합니다.


[share]

  comment = Share Directories

  path = [공유하고자 하는 디렉토리 절대경로]

  read only = no

  valid users = [허용하고자 하는 리눅스 유저ID]


공유영역을 설정하는 방식은 security = share와 대동소이하지만,

valid users로 인증받은 사용자만 접근하도록 설정할 수 있습니다.

valid users에는 윈도우 ID를 적는 것이 아니라

리눅스 ID를 적어놓아야 합니다.

모든 삼바 윈도우 ID는 설정시부터 리눅스 ID와 매핑되게 되어 있기 때문에,

매핑되는 리눅스 ID를 적어놓으면 됩니다.


삼바서버를 위한 사용자 계정관리는 GUI 툴을 사용하는 것이 편리합니다.

$ sudo apt-get install system-config-samba



$ sudo system-config-samba

위의 명령어를 치면 삼바설정을 위한 GUI 툴이 나타납니다.



여기서는 사용자에 대한 설정을 합니다.

설정 > Samba 사용자



위에서 사용자 추가를 선택합니다.

새로운 창이 나오며 삼바사용자를 추가/편집할 수 있는 창이 나옵니다.



Unix 사용자명은 이미 생성된 리눅스 사용자 계정을 넣으면 됩니다.

향후 윈도우즈에서 삼바서버로 접근을 하면 여기서 설정한 사용자 계정 권한으로 파일을 읽고/쓰죠.

Windows 사용자명은 윈도우 로그인 ID를 입력하면 됩니다.


사용자계정까지 설정을 완료했다면 삼바서버를 restart 합니다.

$ sudo service smbd restart


그리고 윈도우즈에서 "실행"을 띄운 후,

아이피를 입력해서 삼바서버에 접근을 해보세요.



공유설정을 해놓은 디렉토리가 표시됩니다.

디렉토리에 진입하고자 더블클릭을 하면,

사용자 계정과 암호를 입력하라는 창이 나옵니다.

여기에 위에서 설정한 Windows 사용자명과 Samba 암호를 입력합니다.

접속에 성공하면 Unix 사용자명의 권한을 가지고 파일에 접근합니다.


여기까지 설명한 설정파일을 붙여놓습니다.

smb.conf


도움이 되면 좋겠군요. :)


+ 추가, 2015. 6. 4

윈도우에서 네트워크 드라이브로 설정하여 윈도우 탐색기에 바로 노출할 수 있습니다.

위의 '실행'에서 삼버서버에 접속하면 아래와 같이 공유된 디렉토리가 나옵니다.

공유된 디렉토리 위에서 마우스 오른 버튼을 누르면 메뉴가 나옵니다.



네트워크 드라이브 연결을 누르면,

아래와 같은 팝업이 나옵니다.



윈도우 탐색기서 표시될 드라이브를 설정합니다.

그리고 "로그온할 때 다시 연결"에 체크해둡니다.

그러면 매번 네트워크 드라이브에 접속하기 위해 아이피를 적을 필요가 없어집니다.

이미 윈도우탐색기에 위에서 설정한 드라이브로 표시될테니까요. :)


끝_


  1. 맛소금 2016.02.11 11:00

    그냥 검색해서 들어온 사이트가 아는분 사이트.ㅎ 멋져요~ :)

    • 안녕하세요! :)
      별고없이 잘 지내시는지요?
      여기서 뵙게 되다니!!! 엄청 반갑습니다!!!
      3월에 뵙겠습니다! 히히.

  2. 누더기 2016.05.24 17:46 신고

    감사히 잘 봤습니다. 필요할 때 간간히 참고하기 좋네요~

  3. zecq 2016.10.10 20:54

    좋은 자료 잘 봤습니다! 잘 쓸게요^^

  4. 번개 2018.01.12 13:45

    감사합니다. 좋은 지식 얻고 갑니다^^

+ Recent posts