root ਵਜੋਂ ਚਲਾਏ ਬਿਨਾਂ Tunnelblick ਤੋਂ ਸ਼ੇਅਰ ਮਾਊਂਟ ਕਰਨਾ
ਖੁੱਲ੍ਹਾ ਰਹਿਣ ਵਾਲਾ AppleScript ਇੱਕ Tunnelblick ਪ੍ਰੋਫਾਈਲ 'ਤੇ ਨਜ਼ਰ ਰੱਖ ਸਕਦਾ ਹੈ ਅਤੇ ਸਾਈਨ-ਇਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ ਵਜੋਂ SMB ਸ਼ੇਅਰ ਮਾਊਂਟ ਕਰ ਸਕਦਾ ਹੈ, root ਹੁੱਕ ਜਾਂ ਪਾਸਵਰਡ ਰਹਿਤ sudo ਤੋਂ ਬਿਨਾਂ।
VPN ਕਲਾਇੰਟ ਨੂੰ ਨੈੱਟਵਰਕ ਮੁੜ ਸੰਰਚਿਤ ਕਰਨ ਲਈ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲੀ ਮਦਦ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਇਹ ਤੱਥ ਇਸ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੀ ਹਰ ਚੀਜ਼ 'ਤੇ ਬਹੁਤ ਵਿਆਪਕ ਰੂਪ ਵਿੱਚ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਫਾਈਲ ਸ਼ੇਅਰ ਮਾਊਂਟ ਕਰਨ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਨੂੰ root ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ, ਕਿਉਂਕਿ ਸ਼ੇਅਰ ਸਾਈਨ-ਇਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ ਦੇ ਸੈਸ਼ਨ ਅਤੇ ਉਸੇ ਵਰਤੋਂਕਾਰ ਦੇ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਦਾ ਹਿੱਸਾ ਹੁੰਦਾ ਹੈ। ਮਾਊਂਟ ਨੂੰ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲੇ ਰਾਹ ਤੋਂ ਬਾਹਰ ਕੱਢਣ ਨਾਲ sudo ਨਿਯਮਾਂ, root ਹੁੱਕਾਂ ਅਤੇ ਨਾਲ ਆਉਂਦੀਆਂ ਐਪਾਂ ਵਿੱਚ ਬਦਲਾਅ ਦੀ ਲੋੜ ਖ਼ਤਮ ਹੋ ਜਾਂਦੀ ਹੈ। ਬਚਦਾ ਹੈ ਇੱਕ ਛੋਟਾ ਐਪਲੈਟ, ਜੋ ਖੁੱਲ੍ਹਾ ਰਹਿੰਦਾ ਹੈ, ਇੱਕ ਪ੍ਰੋਫਾਈਲ 'ਤੇ ਨਜ਼ਰ ਰੱਖਦਾ ਹੈ ਅਤੇ ਇੱਕ ਹੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ।
ਇਹ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਵਿੱਚ ਕਿਉਂ ਆਉਂਦਾ ਹੈ
ਮਾਊਂਟ ਕੀਤਾ ਵੌਲਿਊਮ ਉਸ ਸੈਸ਼ਨ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ ਜਿਸਨੇ ਇਸਨੂੰ ਮਾਊਂਟ ਕੀਤਾ। ਕਿਸੇ ਹੋਰ ਵਰਤੋਂਕਾਰ ਦਾ ਸੈਸ਼ਨ ਇਸਨੂੰ ਨਹੀਂ ਵੇਖਦਾ, ਅਤੇ root ਦੀ ਮਲਕੀਅਤ ਵਾਲਾ ਮਾਊਂਟ Finder ਵੱਲੋਂ ਬਣਾਏ ਮਾਊਂਟ ਨਾਲੋਂ ਵੱਖਰਾ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ। ਮਾਊਂਟ ਨੂੰ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਵਿੱਚ ਰੱਖਣਾ ਉਹ ਅਰਥ ਬਣਾਈ ਰੱਖਦਾ ਹੈ।
ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲੇ ਸਹਾਇਕ ਉਹਨਾਂ ਹਿੱਸਿਆਂ ਲਈ ਹੁੰਦੇ ਹਨ ਜਿਹਨਾਂ ਨੂੰ ਸੱਚਮੁੱਚ ਉਹਨਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ: ਟਨਲ ਇੰਟਰਫ਼ੇਸ ਬਣਾਉਣਾ, ਰੂਟ ਬਦਲਣਾ, ਰਿਜ਼ੌਲਵਰ ਅੱਪਡੇਟ ਕਰਨਾ। SMB ਸ਼ੇਅਰ ਮਾਊਂਟ ਕਰਨਾ ਉਹਨਾਂ ਹਿੱਸਿਆਂ ਵਿੱਚ ਨਹੀਂ ਆਉਂਦਾ। ਇਸਨੂੰ ਉਹੋ ਜਿਹਾ ਮੰਨ ਕੇ ਵਿਵਹਾਰ ਕਰਨ ਨਾਲ ਪਾਸਵਰਡ ਰਹਿਤ sudo ਅਤੇ ਜਦੋਂ ਕੋਈ ਨਹੀਂ ਹੁੰਦਾ ਤਾਂ ਚੱਲਣ ਵਾਲੀ root ਸਕ੍ਰਿਪਟ ਵਿਚਕਾਰ ਚੋਣ ਕਰਨੀ ਪੈਂਦੀ ਹੈ। ਦੋਵੇਂ ਸਮੱਸਿਆ ਦੇ ਜਾਇਜ਼ੇ ਨਾਲੋਂ ਵੱਡੇ ਖ਼ਤਰੇ ਹਨ, ਅਤੇ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਵਾਲਾ ਤਰੀਕਾ ਇਸ ਚੋਣ ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਚਦਾ ਹੈ।
Tunnelblick ਦੇ ਆਪਣੇ ਕਨੈਕਸ਼ਨ ਹੁੱਕ ਇੱਥੇ ਬਦਲ ਨਹੀਂ ਹਨ, ਕਿਉਂਕਿ ਉਹ ਡੈਸਕਟਾਪ ਸੈਸ਼ਨ ਤੋਂ ਬਾਹਰ ਚੱਲਦੇ ਹਨ ਅਤੇ ਕਲਾਇੰਟ ਦੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਨਾਲ ਉਹਨਾਂ ਦਾ ਕ੍ਰਮ ਨਿਰਧਾਰਿਤ ਨਹੀਂ ਹੈ। ਵਰਤੋਂਕਾਰ ਐਪਲੈਟ ਤੋਂ ਸਥਿਤੀ ਪੁੱਛਣਾ ਘੱਟ ਧਾਰਨਾਵਾਂ ਵਾਲਾ ਛੋਟਾ ਤੰਤਰ ਹੈ।
ਪਹਿਲਾਂ ਹੱਥੋਂ ਜਾਂਚੋ ਕਿ ਸ਼ੇਅਰ ਕੰਮ ਕਰਦਾ ਹੈ
ਆਟੋਮੇਸ਼ਨ ਨਾ ਹੋਣ ਵਾਲਾ ਰਾਹ, ਇਜਾਜ਼ਤ ਜਾਂ ਖਾਤਾ ਨਹੀਂ ਦੇ ਸਕਦੀ। ਕੋਈ ਵੀ ਸਕ੍ਰਿਪਟ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ VPN ਨਾਲ ਹੱਥੋਂ ਜੁੜੋ ਅਤੇ ਸ਼ੇਅਰ ਨੂੰ Finder ਵਿੱਚ ਖੋਲ੍ਹੋ। ਜੇ ਇਹ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਹੋਰ ਵੀ ਉਲਝਾਉਣ ਵਾਲੇ ਢੰਗ ਨਾਲ ਫੇਲ੍ਹ ਹੋਵੇਗੀ।
ਸਕ੍ਰਿਪਟ ਜੋ ਤਿੰਨ ਮੁੱਲ ਵਰਤੇਗੀ ਉਹ ਲਿਖੋ: ਪ੍ਰੋਫਾਈਲ ਦਾ ਨਾਮ ਠੀਕ ਉਸੇ ਤਰ੍ਹਾਂ ਜਿਵੇਂ Tunnelblick ਦਿਖਾਉਂਦਾ ਹੈ, ਸ਼ੇਅਰ ਦਾ URL ਅਤੇ ਮਾਊਂਟ ਤੋਂ ਬਾਅਦ Finder ਜੋ ਵੌਲਿਊਮ ਨਾਮ ਦਿਖਾਉਂਦਾ ਹੈ। ਵੌਲਿਊਮ ਨਾਮ ਜ਼ਰੂਰੀ ਹੈ ਕਿਉਂਕਿ ਮੌਜੂਦਾ ਮਾਊਂਟ ਦੀ ਜਾਂਚ ਇਹੀ ਵਰਤਦੀ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਨਾਮ 'ਤੇ ਅਧਾਰਿਤ ਜਾਂਚ ਸਹੂਲਤ ਦੀ ਰੱਖਿਆ ਹੈ, ਸਰਵਰ ਦੀ ਪਛਾਣ ਦਾ ਸਬੂਤ ਨਹੀਂ। ਮਸ਼ੀਨ 'ਤੇ ਵਿਲੱਖਣ ਨਾਮ ਵਰਤੋ। ਫਿਰ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਸਰਵਰ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ।
smbutil view //files.corp.example
osascript -e 'tell application "Tunnelblick" to get state of first configuration whose name is "Office"'
mount | grep -i smbfs
ਪਹਿਲਾ ਕਮਾਂਡ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਸਰਵਰ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਦੂਜਾ ਕਿ ਪ੍ਰੋਫਾਈਲ ਨਾਮ ਹੱਲ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਤੀਜਾ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਸਫਲ ਮਾਊਂਟ ਕਿਹੋ ਜਿਹਾ ਦਿਸਦਾ ਹੈ। ਕੁਝ ਵੀ ਆਟੋਮੈਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤਿੰਨੇ ਲਿਖੋ।
Tunnelblick ਤੋਂ ਪ੍ਰੋਫਾਈਲ ਸਥਿਤੀ ਪੜ੍ਹੋ
Tunnelblick ਆਪਣੀਆਂ ਸੰਰਚਨਾਵਾਂ ਅਤੇ ਉਹਨਾਂ ਦੀਆਂ ਸਥਿਤੀਆਂ AppleScript ਰਾਹੀਂ ਖੋਲ੍ਹਦਾ ਹੈ, ਅਤੇ ਇਹੀ ਇੱਕੋ ਹੁੱਕ ਹੈ ਜੋ ਇਸ ਡਿਜ਼ਾਈਨ ਨੂੰ ਚਾਹੀਦਾ ਹੈ। ਜ਼ਰੂਰੀ ਸਥਿਤੀ ਉਸੇ ਇੱਕ ਪ੍ਰੋਫਾਈਲ ਲਈ ਰਿਪੋਰਟ ਕੀਤੀ ਸਤਰ ਹੈ, ਐਪ ਦੀ ਮੌਜੂਦਗੀ ਨਹੀਂ।
ਪੁੱਛਗਿੱਛ ਦੀਆਂ ਕੁਝ ਕੀਮਤਾਂ ਹਨ ਜੋ ਦੱਸਣ ਯੋਗ ਹਨ। ਅੰਤਰਾਲ ਨਾਲੋਂ ਛੋਟਾ ਮੁੜ-ਜੁੜਾਅ ਨਜ਼ਰ ਅੰਦਾਜ਼ ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਐਪਲੈਟ ਉਹ ਬਦਲਾਅ ਬਿਲਕੁਲ ਨਹੀਂ ਵੇਖਦਾ। ਮਾਊਂਟ ਦੀ ਪਹਿਰੇਦਾਰੀ ਲਈ ਇਹ ਪ੍ਰਵਾਨਯੋਗ ਹੈ ਅਤੇ ਹਰ ਘਟਨਾ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਦੇਣ ਵਾਲੀ ਕਿਸੇ ਵੀ ਚੀਜ਼ ਲਈ ਨਾਮਨਜ਼ੂਰ। ਘਟਨਾ-ਪੱਧਰੀ ਸ਼ੁੱਧਤਾ ਚਾਹੀਦੀ ਹੋਵੇ ਤਾਂ ਇਹ ਗਲਤ ਤੰਤਰ ਹੈ, ਟਾਈਮਰ ਛੋਟਾ ਕਰਨ ਵਾਲਾ ਤੰਤਰ ਨਹੀਂ। ਅੰਤਰਾਲ ਚੁਣਦੇ ਸਮੇਂ ਇਹ ਸਮਝੌਤਾ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ।
property attempted : false
on idle
set profileName to "Office"
set shareURL to "smb://files.corp.example/OfficeTeam"
set volName to "OfficeTeam"
tell application "Tunnelblick" to set vpnState to state of first configuration whose name is profileName
if vpnState is not "CONNECTED" then
set attempted to false
return 20
end if
tell application "Finder" to set mounted to (exists disk volName)
if (not mounted) and (not attempted) then
set attempted to true
try
mount volume shareURL
end try
end if
return 20
end idle
ਖੁੱਲ੍ਹਾ ਰੱਖਣ ਵਾਲੇ ਵਿਕਲਪ ਨਾਲ ਇਸਨੂੰ ਐਪਲੀਕੇਸ਼ਨ ਵਜੋਂ ਨਿਰਯਾਤ ਕਰੋ, ਫਿਰ sudo ਦੀ ਥਾਂ ਸਾਈਨ-ਇਨ ਕੀਤੇ ਸੈਸ਼ਨ ਵਿੱਚ ਚਲਾਓ।
ਇੱਕ ਵਾਰ ਮਾਊਂਟ ਕਰੋ, ਫਿਰ ਕੋਸ਼ਿਸ਼ ਬੰਦ ਕਰੋ
ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਫਲੈਗ ਹੀ ਇਸਨੂੰ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਵਾਲੇ ਲੂਪ ਬਣਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਐਪਲੈਟ ਦੇ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ ਉਹ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕਨੈਕਸ਼ਨ ਸਥਿਤੀ ਬਦਲਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ।
ਇਹ ਵਿਵਹਾਰ ਜਾਣ-ਬੁੱਝ ਕੇ ਹੈ। ਮਾਊਂਟ ਤੋਂ ਇਨਕਾਰ ਕਰਨ ਵਾਲਾ ਸ਼ੇਅਰ ਆਮ ਤੌਰ 'ਤੇ ਐਸੇ ਕਾਰਨ ਇਨਕਾਰ ਕਰਦਾ ਹੈ ਜੋ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਨਾਲ ਠੀਕ ਨਹੀਂ ਹੁੰਦਾ, ਅਤੇ ਵਾਰ-ਵਾਰ ਕੋਸ਼ਿਸ਼ਾਂ ਇੱਕ ਬੇਨਤੀ ਨੂੰ ਉਹਨਾਂ ਦੀ ਕਤਾਰ ਬਣਾ ਦਿੰਦੀਆਂ ਹਨ। ਪ੍ਰੋਫਾਈਲ ਜੁੜੀ ਸਥਿਤੀ ਤੋਂ ਬਾਹਰ ਜਾਣ 'ਤੇ ਫਲੈਗ ਰੀਸੈਟ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਸੱਚਾ ਮੁੜ-ਜੁੜਾਅ ਠੀਕ ਇੱਕ ਨਵੀਂ ਕੋਸ਼ਿਸ਼ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਐਪਲੈਟ ਬੰਦ ਕਰਕੇ ਦੁਬਾਰਾ ਚਲਾਉਣ ਨਾਲ ਵੀ ਇਹ ਰੀਸੈਟ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਹੀ ਹੱਥੋਂ ਕੀਤਾ ਦਖ਼ਲ ਹੈ। ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਰਾਹ ਫੇਲ੍ਹ ਨਹੀਂ ਲੁਕਾਉਂਦਾ; ਦੋਵੇਂ ਇਸਨੂੰ Finder ਵਿੱਚ ਦਿਸਦਾ ਛੱਡਦੇ ਹਨ।
ਸਕ੍ਰਿਪਟ ਕੋਈ ਪਾਸਵਰਡ ਨਹੀਂ ਰੱਖਦੀ, ਅਤੇ ਇਸੇ ਤਰ੍ਹਾਂ ਹੀ ਰਹਿਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਾਊਂਟ ਕਿਰਿਆ ਨੂੰ ਪੁੱਛਣ ਦਿਓ, ਅਤੇ ਕੀਚੇਨ ਨੂੰ ਉਹ ਕਰਨ ਦਿਓ ਜੋ ਸੰਸਥਾ ਸਮਰਥਨ ਕਰਦੀ ਹੈ। URL ਵਿੱਚ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪਾਉਣਾ ਸਹੂਲਤ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਬਦਲਣਾ ਪੈਣ ਵਾਲਾ ਭੇਤ ਬਣਾ ਦਿੰਦਾ ਹੈ।
ਸਹਾਇਕ ਕੀ ਨਹੀਂ ਕਰ ਸਕਦਾ
ਤਿੰਨ ਸੀਮਾਵਾਂ ਐਪਲੈਟ ਦੇ ਕੋਲ ਲਿਖਣ ਯੋਗ ਹਨ। ਇਹ ਨੈੱਟਵਰਕ ਫੇਲ੍ਹ ਹੋਣ ਤੋਂ ਬਾਅਦ ਰੁਝੇ ਵੌਲਿਊਮ ਬਾਹਰ ਨਹੀਂ ਕੱਢ ਸਕਦਾ, ਸਥਿਤੀ ਜੁੜਿਆ ਦੱਸਦੀ ਹੋਵੇ ਤਾਂ DNS ਅਤੇ ਸਰਵਰ ਤਿਆਰ ਹੋਣ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦੇ ਸਕਦਾ, ਅਤੇ ਹਰ ਮੁੜ-ਜੁੜਾਅ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਨਹੀਂ ਦਿੰਦਾ।
ਪਹਿਲੀ ਸੀਮਾ ਵਿਵਹਾਰ ਵਿੱਚ ਸਭ ਤੋਂ ਜ਼ਰੂਰੀ ਹੈ। ਜਿਸਦਾ ਸਰਵਰ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ ਉਹ ਸ਼ੇਅਰ ਅਜਿਹਾ ਵੌਲਿਊਮ ਛੱਡਦਾ ਹੈ ਜੋ ਮਾਊਂਟ ਦਿਸਦਾ ਹੈ ਅਤੇ ਪਹੁੰਚ 'ਤੇ ਅਟਕਦਾ ਹੈ, ਅਤੇ ਨਿਮਰ ਹੱਲ ਇਹ ਹੈ ਕਿ ਯੋਜਿਤ ਡਿਸਕਨੈਕਟ ਤੋਂ ਪਹਿਲਾਂ ਫਾਈਲ ਕਿਰਿਆਵਾਂ ਪੂਰੀਆਂ ਕਰਕੇ ਇਸਨੂੰ ਬਾਹਰ ਕੱਢ ਦਿੱਤਾ ਜਾਵੇ। ਦੂਜੀ ਸੀਮਾ ਪਹਿਲੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਦੀਆਂ ਬਹੁਤੀਆਂ ਫੇਲ੍ਹਤਾਵਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਦੀ ਹੈ: ਟਨਲ ਉੱਤੇ ਹੈ ਪਰ ਰਿਜ਼ੌਲਵਰ ਅਜੇ ਪਹੁੰਚਿਆ ਨਹੀਂ, ਇਸ ਲਈ ਉਡੀਕ ਕਰੋ ਅਤੇ ਫਿਰ ਪੁਸ਼ਟੀ ਲਈ ਇੱਕ ਵਾਰ ਹੱਥੋਂ ਮਾਊਂਟ ਕਰੋ। ਤੀਜੀ ਸੀਮਾ ਪਹਿਲਾਂ ਦੱਸਿਆ ਪੁੱਛਗਿੱਛ ਦਾ ਸਮਝੌਤਾ ਹੈ, ਠੀਕ ਕਰਨ ਯੋਗ ਕੋਈ ਬੱਗ ਨਹੀਂ।
ਬਿਨਾਂ ਨਿਗਰਾਨੀ ਵਾਲੀ ਮਸ਼ੀਨ ਜਾਂ ਪ੍ਰਬੰਧਿਤ ਫਲੀਟ ਲਈ ਇਹ ਡਿਜ਼ਾਈਨ ਗਲਤ ਸ਼ਕਲ ਦਾ ਹੈ। ਡੈਸਕਟਾਪ ਐਪਲੈਟ ਨੂੰ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲੀ ਸੇਵਾ ਬਣਾਉਣ ਦੀ ਥਾਂ ਪ੍ਰਸ਼ਾਸਕ ਦੀ ਮਲਕੀਅਤ ਵਾਲੀ ਮਾਊਂਟ ਨੀਤੀ ਵਰਤੋ।