Latest Article Get our latest posts by subscribing this site

Create user in linux / unix

(seputar-programming.blogspot.com). Membuat users di Linux atau sistem Unix merupakan tugas rutin untuk sys-admin.
Kadang-kadang Anda dapat membuat users tunggal dengan konfigurasi default, atau membuat single user dengan konfigurasi custom, atau membuat beberapa users pada saat yang sama menggunakan metode bulk user creation.
Pada artikel ini, kita akan meninjau bagaimana membuat users Linux dengan 4 metode yang berbeda menggunakan useradd, adduser dan newusers disertai command dengan contoh-contoh praktis.

Metode 1: Linux useradd Command - Membuat Users Dengan Konfigurasi default

Create ftp user in solaris and restrict only use ftp

(seputar-programming.blogspot.com). Sahabat seputar-programming, berikut cara - cara untuk create ftp user di solaris dan memberikannya privilege hanya bisa menggunakan ftp saja serta di restrict ke directory tertentu saja.

contoh kasus :
saya ingin membuat user ftp dengan nama dwhftp yang hanya bisa mengakses directory /performance4/data/smsmenu sebagai home directorynya, serta hanya bisa menggunakan service ftp saja.

berikut langkah-langkahnya : 

1. siapkan user untuk ftp. misal = dwhftp
2.  Login as root
# su – 
3. backup ftpusers list
# mv /etc/ftpd/ftpusers /etc/ftpd/ftpusers.bu
4. create /bin/ftponly
# echo 'echo "This account only allows FTP Access."' > /bin/ftponly
# chmod a+x /bin/ftponly
5.jika ada /etc/shell, maka tambahkan /bin/ftpuser pada baris terakhir, jika tidak maka jalankan command ini
# ls /bin/*sh > /etc/shells
kemudian tambahkan /bin/ftpuser pada baris terakhir di /etc/shells
6. create user ftpnya :
# useradd -c "dwhftp" -d /performance4/data/smsmenu -m -s /bin/ftponly 
-g staff dwhftp
7. masukkan password
 # passwd dwhftp
8. user yang tidak di ijinkan untuk menggunakan ftp maka tambahkan di /etc/ftpd/ftpusers atau di /etc/ftpusers
# cat /etc/passwd|cut -f 1 -d: > /etc/ftpd/ftpusers
(not recommended way /cara kasar)
atau 
add user "ftpuser" manually into /etc/ftpd/ftpusers 
(recommended way /cara halus)
hasilnya adalah sebagai berikut :
bash-3.00# cat /etc/ftpd/ftpusers
root
daemon
bin
sys
adm
lp
uucp
nuucp
smmsp
listen
gdm
webservd
postgres
svctag
nobody
noaccess
nobody4
peremeks
ftpuser
pangky
sumadi
agung
hadoop
itbss
perf
perf123
hesra
hwi
poi
oracle
helpdesk
reva
achid
dwh
#dwhftp
9. untuk melakukan restriction pada directory user maka edit /etc/ftpd/ftpaccess,lalu tambahkan :
allow-retrieve relative class=realusers /performance4/data/smsmenu
restricted-uid dwhftp
caranya :
vi /etc/ftpd/ftpaccess
# vi /etc/ftpd/ftpaccess
"/etc/ftpd/ftpaccess" 61 lines, 1608 characters
# ident "@(#)ftpaccess  1.2     03/05/14 SMI"
#
# FTP server configuration file, see ftpaccess(4).
#

class  realusers  real  *
class  guestusers  guest  *
class  anonusers  anonymous  *

loginfails      3
passwd-check  trivial  warn
private         no
shutdown        /etc/ftpd/shutdown.msg
# email         user@hostname
# guestuser     username
# rhostlookup   no

keepalive       yes
recvbuf         65536           real,guest,anonymous
sendbuf         65536           real,guest,anonymous
# flush-wait    no              anonymous
# passive       ports           0.0.0.0/0       32768   65535
# timeout       data            600
# timeout       idle            300

banner          /etc/ftpd/banner.msg
greeting        brief
message         /etc/ftpd/welcome.msg   login
message         .message                cwd=*
readme          README*                 login
readme          README*                 cwd=*
# quota-info    *

chmod           no              anonymous
delete          no              anonymous
overwrite       no              anonymous
rename          no              anonymous
umask           no              anonymous

compress        yes             realusers guestusers anonusers
tar             yes             realusers guestusers anonusers

path-filter  guest,anonymous /etc/ftpd/filename.msg  ^[[:alnum:]._-]*$ ^[.-]

noretrieve  relative        class=anonusers         /
allow-retrieve  relative        class=anonusers         /pub

upload  class=anonusers    *    *         no  nodirs
# upload  class=anonusers    *    /incoming yes ftpadm ftpadm 0440 nodirs

# log  commands        real,guest,anonymous
# log  security        real,guest,anonymous
# log  transfers       real,guest,anonymous    inbound,outbound
# xferlog format %T %Xt %R %Xn %XP %Xy %Xf %Xd %Xm %U ftp %Xa %u %Xc %Xs %Xr

# limit-time    anonymous  30
# limit         anonusers  10      Wk0730-1800       /etc/ftpd/toomany.msg
# limit         anonusers  50      SaSu|Any1800-0730 /etc/ftpd/toomany.msg

allow-retrieve relative class=realusers /performance4/data/smsmenu
restricted-uid dwhftp

10. Restart ftp daemon
# svcadm restart ftp
11. user login via ftp, maka akan terlihat "/performance4/data/smsmenu" sebagai "/"
perf123@jkt-svr-nocmed01:~-> ftp 172.16.3.14
Connected to 172.16.3.14.
220 jkt-svr-nocmed01 FTP server ready.
Name (172.16.3.14:perf123): dwhftp
331 Password required for dwhftp.
Password:
230 User dwhftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/" is current directory.
ftp>

find command di linux / unix

(seputar-programming.blogspot.com).  Jika anda sudah terbiasa menggunakan sistem operasi windows, maka anda tidak asing lagi dengan perintah "search" yang ada di windows explorer, yang digunakan untuk mencari suatu file / directory ( folder ) berada di directory / folder apa.
jika anda menggunakan sistem operasi linux / unix, maka anda perlu menggunakan console untuk mencari file yang ada maksud dan mengetikkan command unix find.


berikut ini adalah command untuk menggunakan perintah unix find:

1. unix find - Mencari file / direktory dengan nama tertentu yang case-sensitif

# find -name "*0101*"

./Perf/2013/Jan/BTSFwdPwrUsg-20130101.txt.gz
./Perf/2013/Jan/BTSPerf-20130101.txt.gz
./Perf/2013/Jan/BTSPerfCh-20130101.txt.gz
./Perf/2013/Jan/BTSTxRxPwr-20130101.txt.gz
./Perf/2013/Jan/BSCPerf-20130101.txt.gz
./Perf/2013/Jan/BTSCPUUsage-20130101.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120101.txt.gz

2. unix find - Mencari file / direktory dengan nama tertentu dengan mengabaikan uppercase / lowercasenya (in case-sensitif )

# find -iname "*t1e1*2012*"
./T1E1Trunk/2012/Jan/T1E1Trunk-20120103.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120104.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120105.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120106.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120107.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120108.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120109.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120110.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120112.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120113.txt.gz

3. unix find - Mencari file dengan kedalaman tertentu ( menggunakan -mindepth dan -maxdepth )

# find -mindepth 3 -iname "*t1e1*2012*"
./T1E1Trunk/2012/Jan/T1E1Trunk-20120103.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120104.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120105.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120106.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120107.txt.gz

jika hasilnya tidak muncul, maka bisa dipastikan namanya yang gak ada, atau depthnya yang kurang..

4. unix find - Mengeksekusi hasil dari find dengan menggunakan xargs (detail xargs akan di jelaskan disini )

# find -mindepth 3 -iname "*t1e1*2012*" | xargs ls -ltr
-rwxr-Sr-t 1 root root 39635 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120103.txt.gz
-rwxr-Sr-t 1 root root 39308 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120106.txt.gz
-rwxr-Sr-t 1 root root 39677 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120105.txt.gz
-rwxr-Sr-t 1 root root 39182 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120104.txt.gz

5. unix find - Menggunakan command -not sebagai invers nya..

# find -not -iname "*t1e1*201201*"
./T1E1Trunk/2012/may/T1E1Trunk-20120502.txt.gz
./T1E1Trunk/2012/may/T1E1Trunk-20120511.txt.gz
./T1E1Trunk/2012/may/T1E1Trunk-20120520.txt.gz
./T1E1Trunk/2012/may/T1E1Trunk-20120529.txt.gz

6. unix find - mencari file dengan nama yang sama dengan argument iname (-i)
untuk memudahkan dalam mencernanya, maka kita coba buat file "testblog.txt" dan "testblog.txt ".
# touch "testblog.txt"

# touch "testblog.txt "


jika di list maka akan keluar
# ls -i1 testblog*
25068256 testblog.txt
25068257 testblog.txt

kita bisa rename filenya menjadi testblog1.txt dengan menggunakan xargs, berikut comnandnya :
# find -inum 25068257 | xargs -i mv -f {} "testblog1.txt"
# find -inum 25068257
./testblog1.txt

7. unix find - Mencari file berdasarkan permission tertentu dengan menggunakan argument -perm
# find . -perm 644 -type f | xargs ls -l
-rw-r--r-- 1 root   root          0 Oct  1 14:24 ./test/testblog1.txt
-rw-r--r-- 1 root   root          0 Oct  1 14:23 ./test/testblog.txt

8. unix find - Mencari file empty (kosong / 0 byte) dengan menggunakan argument -empty pada home directory
# find ~ -empty | xargs ls -l
-rw-r--r-- 1 root   root      0 Oct  1 14:24 /home/hendra/test/testblog1.txt
-rw-r--r-- 1 root   root      0 Oct  1 14:23 /home/hendra/test/testblog.txt

anda dapat mengkombinasikannya dengan menggunakan -not dan atau -type f (untuk tipe file ) atau -type d untuk tipe directory
#  find ~ -not -empty -type d
#  find ~ -not -empty -type f

9. unix find - Mencari file terbesar top ten di directory
# find -type f -not -empty | xargs ls -s | sort -n -r | head -10
10436 ./cr_runcmd_allbsc.log
  232 ./hello_2.log
  176 ./hello_1.log
   76 ./test.tar

10. unix find - Mencari file yang terkecil top ten di directory
# find -type f -not -empty | xargs ls -s | sort -n  | head -10
    4 ./php_script/cr_adconf_2.php
    4 ./php_script/cr_adconf_4.php

11. unix find - Mencari file dengan size tertentu dengan menggunakan -size
untuk mendapatkan file yang berukuran > 100 M
# find / -size +100M
untuk mendapatkan file yang berukuran < 100 M
# find / -size -100M
untuk mendapatkan file yang berukuran = 100 M
# find / -size 100M

12. unix find - Mencari file berdasarkan tipenya dengan menggunakan -type
socket files.
# find . -type s

directories
# find . -type d

normal files
# find . -type f

hidden files
# find . -type f -name ".*"

hidden directories
# find -type d -name ".*"

13. unix find - Mencari file berdasarkan Access / Modification / Change Time
penjelasan :
   1. Modification time. Modification time akan update bila content dari filenya berubah.
   2. Access time. Access time akan update ketika file tersebut di akses.
   3. Change time. Change time akan update ketika inode data berubah.
    * -mmin n ( modifikasi > n menit yang lalu )     * -mtime n ( modifikasi > n hari yang lalu )
    * -amin n ( akses terakhir >  n menit yang lalu )     * -atime n ( akses terakhir > n hari yang lalu )
    * -cmin n ( perubahan inode terakhir > n menit yang lalu )     * -ctime > n (perubahan inode terakhir n hari yang lalu )
contoh penggunaan :
# find -type f -mtime -60
# find -type f -ctime -60
# find -type f -atime -60

14. unix find - Mencari file dengan membandikan waktu perubahan dari file lain.
# find -newer /etc/passwd
./T1E1Trunk-20120401.txt.gz
./T1E1Trunk-20120402.txt.gz
./T1E1Trunk-20120403.txt.gz
./T1E1Trunk-20120404.txt.gz
./T1E1Trunk-20120405.txt.gz


# find -anewer /etc/hosts
./T1E1Trunk-20120401.txt.gz
./T1E1Trunk-20120402.txt.gz
./T1E1Trunk-20120403.txt.gz
./T1E1Trunk-20120404.txt.gz
./T1E1Trunk-20120405.txt.gz


# find -cnewer /etc/fstab
./T1E1Trunk-20120401.txt.gz
./T1E1Trunk-20120402.txt.gz
./T1E1Trunk-20120403.txt.gz
./T1E1Trunk-20120404.txt.gz
./T1E1Trunk-20120405.txt.gz

15. unix find - Mencari file di linux / unix dengan menggunakan argument -xdev
# find / -xdev -name "*.log"
hanya akan mencari pada " / ", tidak di mount point lain di bawah " / "

# find / -name "*.log"
akan mencari seluruh file yang mengandung ektention .log yang dimulai dari  " / ".

16. unix find - Mencari file di linux / unix dengan multiple grep
# find ./ -type f | egrep -i "string1|string2"

berikut ulasan dari saya semoga teman-teman tidak bosan mengunjungi blog saya ini..

get date di perl

(seputar-programming.blogspot.com).  Bagaimanakan menentukan tanggal pada 10 hari yang lalu ? atau bagaimanakah menentukan tanggal pada 12 menit yang lalu. berikut ini adalah fungsi untuk menentukan date pada waktu tertentu  :

Print date range di perl

(seputar-Programming.blogspot.com). Pernahkah anda membuat script perl yang mencollect file dari range date tertentu. Tentu akan membosankan jika anda memasukan seluruh tanggal di script secara manual.

berikut subroutine ( function ) untuk membuat date range di perl



Penggunaan script :
anda bisa memanggil script ini dengan cara :
@date_1 = printDateRange('2013-09-01','2013-09-10','1');
@date_2 = printDateRange('2013-09-01','2013-09-10','2');

maka jika print "@date_1"; akan keluar hasil sebagai berikut :
2013-09-01 2013-09-02 2013-09-03 2013-09-04 2013-09-05 2013-09-06 2013-09-07 2013-09-08 2013-09-09 2013-09-10

jika print "@date_2"; akan keluar hasil sebagai berikut :
20130901 20130902 20130903 20130904 20130905 20130906 20130907 20130908 20130909 20130910

berikut script subroutine printDateRange();
sub printDateRange
{
    use POSIX qw/strftime/;
    my ($start_date,$end_date,$print_mode);
    undef @arout;       
   
   if(@_){
        $start_date = $_[0];
        $end_date = $_[1];
        $print_mode = $_[2];
    }else{
        $start_date = "2010-08-16";
        $end_date   = "2010-09-16";
    }
    my @time  = (0, 0, 0);
    my ($y, $m, $d) = split "-", $start_date;
    $y -= 1900;
    $m--;
    my $offset = 0;
    while ((my $date = strftime "%Y-%m-%d", @time, $d + $offset, $m, $y) le $end_date){
        # print "$date\n";
        if($print_mode eq '1'){
            push(@arout,$date);
        }
        if($print_mode eq '2'){
            my $date2 = strftime "%Y%m%d", @time, $d + $offset, $m, $y;
            push(@arout,$date2);
        }       
    } continue {
        $offset++;
    }
    return @arout;
} 


Tips & Trick zip file dan remove file hasil zip di linux

Sobat seputar-programming, Sering kali seorang sysadmin atau orang yang berkecimpung di data management harus membackup suatu file, baik itu berupa file txt, log atau pun file lainnya kedalam keadaan belum terkompres. 


Nah Caranya anda bisa memanfaatkan perintah gzip -9.

gzip -9 /path/filename.ext

dengan perintah diatas, maka file tersebut akan langsung di kompres menjadi .gz, setelah di kompres, maka file aslinya akan automaticly terhapus oleh gzip, jadi anda tidak perlu rm-rf file aslinya. :)
cukup menarik bukan ??

 
Support : Your Link | Your Link | Your Link
Copyright © 2013. Seputar Programming - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger